포털:고등학교/정보·통신 계열 전문 교과(2015)/프로그래밍/프로그래밍 언어의 종류와 특징

프로그램에 대해 알아보자

편집
컴퓨터가 수행해야 할 명령문들을 순차적으로 나열한 것을 컴퓨터 프로그램 또는 프로그램이라 한다.
프로그래밍: 컴퓨터로 어떤 문제를 처리할 수 있도록 프로그램을 작성하는 작업이나 과정
프로그래머: 프로그램을 설계하고 명령어를 작성하는 사람 
예시) 네비게이션, 행사 프로그램, TV프로그램 등과 같이 해야 할 일을 나타내는 시간표나 계획 등이 있다.


프로그램과 소프트웨어의 다른 점

편집
정보 기기는 기계자체인 하드웨어와 윈도나 앱과 같이 기기를 운용하는 소프트웨어로 나눌 수 있다. 
하드 웨어: 물리적 부품을 의미한다.
소프트 웨어: 프로그램과 이를 작성하기 위하여 사용되는 설계서, 기술서 및 기타 관련 자료를 총칭한다.
'즉, 소프트웨어는 프로그램과 이를 작성하고 운용, 유지 및 보수하기 위하여 사용되는 관련 자료 모두를 의미한다.'

컴퓨터 프로그램은 시스템 프로그램과 응용 프로그램으로 나뉜다.

시스템 프로그램: 하드웨어를 관리하고 동작시켜서 사용자가 원하는 작업을 할 수 있도록 돕는 프로그램.
응용 프로그램: 사용자가 컴퓨터를 이용하여 특정한 작업을 수행할 수 있도록 도와 주는 프로그램
소프트웨어의 종류
시스템 소프트웨어 프로그래밍 소프트 웨어 응용 소프트웨어
운영체제 컴파일러와 인터프리터 문서작성 프로그램
유틸리티 프로그램 디버거, 링커 표 계산 프로그램
텍스트 에디터 프레젠테이션 프로그램
데이터베이스 프로그램

프로그래밍 언어

편집
언어: 사람이 생각이나 느낌을 말이나 글로 나타내는 수단
프로그래밍 언어: 컴퓨터 하드웨어와 사람이 의사소통이 가능하도록 만든 언어이다.
프로그래밍 언어는 성격에 따라 여러 종류가 있다.
나라마다 언어와 언어사용 규칙이 다른 것처럼 컴퓨터 프로 그래밍 언어도 종류에 따라 사용 규칙이 다르다.

프로그래밍 언어의 종류와 특징에 대하여 알아보자

편집
옛날에 프로그래밍은 숫자를 나열한 명령 코드를 사용했었다. 이러한 명령코드는 틀리기 쉽고 오류를 발견하기 어려워 작업 능률이 많이 떨어지는 단점이 있었다.
현대는 사람이 쉽게 사용할 수 있는 형태로 발전하게 되었는데 이것이 프로그래밍 언어이다.
프로그래밍 언어는 개발 분야와 사용 목적, 프로그래밍 설계 방법에 따라 다양하게 분류할 수 있다.

프로그래밍 언어 분류
기계중심과 사람 중심에 따른 분류 개발 분야 및 사용 목적에 따른 분류 프로그래밍 설계 방법에 따른 분류
저급언어 시스템 개발용 언어 절차 지향 언어
고급언어 응용 프로그램 개발용 언어 객체 지향 언어
웹 • 게임 개발용 언어
교육용 언어

기계 중심과 사람 중심에 따른 분류

편집
프로그래밍 언어는 컴퓨터 하드웨어 중심이냐 사람 중심이냐에 따라 저급 언어와 고급 언어로 구분할 수 있다.
저급 언어: 기계중심의 언어
고급 언어: 사람 중심으로 설계된 언어
저급 언어 고급언어
컴퓨터나 기계장치를 통해 바로 실행시키거나 간다니 변환하여 실행할 수 있는 프로그래밍 언어 사람이 이해하기 쉽고 사용하기 편리한 형태로 개발된 다양한 프로그래밍 언어이다.
프로그래밍하기는 어렵지만 번역이 간단하다. 언어로 작성한 프로그램은 실행시키기 위해서 기계어로 번역해 주는 번역기가 필요하다.
기계어와 어셈블리어가 있다. 번역기의 방식에 따라 컴파일러형 언어와 인터프리터형 언어로 나뉜다.
저급 언어인 기계어는 CPU가 직접 이해하고 실행할 수 있는 2진수 언어이고, 어셈블리어는 2진수의 기계어를 좀 더 쉽게 이해하고 작성할 수 있도록 영문 명령어로 표현한 언어이다. 
고급 언어의 종류는 개발 분야 및 사용 목적, 설계 방법에 따라 매우 다양한 언어가 있다.


개발 분야 및 사용 목적에 따른 분류

편집
프로그래밍 언어는 개발 분야와 사용 목적에 따라 시스템 개발용 언어, 응용 프로그램 개발용 언어, 웹 개발용 언어, 게임 개발용 언어, 교육용 언어 등으로 구분할 수 있다.
시스템 개발용 언어 응용 프로그램 개발용 언어 웹 개발용 언어 게임 개발용 언어 교육용 언어
시스템 소프트웨어를 개발할 때 사용되는 언어들로 하드웨어를 직접 동작시키거나 제어할 때 사용한다. 응용 프로그램을 개발하기 위한 프로그래밍언어이다. 홈페이지를 작성하거나 운영할 때 사용되는 언어들로 웹 연동에 편리하게 사용할수 있도록 구성되어 있다. 게임을 개발할 때 사용하는언어들로 게임 설계나 개발, 테스트, 유지 관리 등을 편리하게 할 수 있도록 구성되어 있다. 프로그래밍 언어들을 쉽게 배울 수 있도록 만들어진 언어이다.
종류: C, C++ 등 종류:자바(Java), 파이썬(Python), 비주얼 베이직, 비주얼C++ 등 종류: HTML, PHP, 자바 스크립트(JavaScript), ASP, JSP 등 종류:C#, 액션스크립트(ActionScript),게임메이커(GameMaker)등 종류:스크래치(Scratch), 엔트리(Entry)

프로그래밍 설계 방법에 따른 분류

편집
프로그래밍 언어는 프로그래밍 설계 방법에 따라 절차 지향 언어, 객체 지향 언어 등으로 구분할 수 있다.

절차 지향 언어 객체 지향 언어 !
초기에 개발된 고급 언어이다. 프로그램 작성에 필요한 객체를 만들고, 이들 객체들을 이용하여 프로그램을 작성할 때 사용하는 언어이다.
문제 해결을 위해 정해진 문법에 따라 일련의 처리 절차를 차례대로 기술하는 언어이다. 종류: 자바, C++, C# 등
종류: 포트란, 코볼, C, 베이직 등
절차 지향 언어 예시) 자판기에서 제품을 선택하는 경우                                          객체 지향 언어 예시)
고객은 돈을 준비하여 돈을 자판기에 넣는다.                                                    고객    돈을 넣는다     →       자판기   돈을 넣는다.
                   ↓                                                                         돈      돈을 받는다     ←       돈       돈을 검사한다.
자판기에서는 돈을 검사하여 준비된 제품과 잔돈을 꺼내준다                                      제품    제품을 받는다.  ←       제품     잔돈을 준다.
                   ↓                                                                                                                   제품을 준다.
고객은 잔돈과 제품을 받아간다.