알통 지식정보공유

알록달록

ChevronLeft

컴/폰

프로그래밍 언어의 종류와 특징

FileX

kingsnake

2022-10-22 15:00

조회수 : 15

썸네일 이미지

이번 글에서는 프로그램을 이루는 프로그래밍 언어의 종류와 특징에 대해 알아보겠습니다.



프로그래밍 언어의 종류


프로그래밍 언어의 역사

일반적으로 프로그래밍 언어는 컴퓨터가 발명된 시대에 같이 만들어졌다고 생각할 수 있지만, 컴퓨터가 발명되기

이전에도 '프로그래밍 언어'라고 부를 수 있는 것은 존재했습니다. 대표적인 것이 천을 생산하기 위한 '직물 제조기'로,

직물의 무늬를 원하는 모양으로 만들기 위해서 펀치 카드와 같은 일종의 프로그래밍 개념을 사용하였습니다.



그 후 전자식 컴퓨터가 발명된 이후에 수많은 프로그래밍 언어가 만들어져 왔으며, 컴퓨터의 계산이나 작동을 기술하기

위해 명령어, 함수 등이 사용되었고 현재는 이를 바탕으로 비교적 편리하게 프로그래밍을 할 수 있습니다. 현재 사용되는

대표적인 프로그래밍 언어로는 C, C++, JAVA, Python, 어셈블리어, PHP 등이 있습니다.


프로그래밍 언어의 분류

프로그래밍 언어는 사용되는 목적과 프로그래밍 방법 등 특성에 따라 분류할 수 있는데, 현재의 프로그래밍 언어는

다양한 목적에 사용할 수 있는 기능이 포함되도록 지속적으로 개선되고 있고 새롭게 개발되고 있습니다. 이 프로그래밍

언어의 분류 체계는 크게 수준, 사용 목적, 프로그래밍 방법의 3가지로 나뉩니다.



▶ 수준에 따른 분류


☆ 저급 언어 :: 기계나 컴퓨터로 바로 실행시킬 수 있는 프로그래밍 언어

→ 기계어, 어셈블리어 등이 있고 하드웨어에 대한 전문적인 지식이 필요합니다.


☆ 고급 언어 :: 사람이 이해하기 쉬운 형태이며 컴파일이 필요한 프로그래밍 언어

→ C, Python, JAVA 등이 있고 전문적인 지식이 없어도 프로그래밍이 가능합니다.


▶ 사용 목적에 따른 분류


☆ 시스템 개발용 언어 :: OS 등 시스템 소프트웨어를 개발하는 데 쓰이는 프로그래밍 언어

→ C, C++ 등이 있고 하드웨어를 직접 제어해야 하기에 운영체제와 하드웨어에 대한 지식을 필요로 합니다.


☆ 응용 프로그램 개발용 언어 :: 운영체제가 설치된 시스템에서의 앱을 만들기 위한 프로그래밍 언어

→ Visual BASIC, Visual C++ 등이 있고 사용자가 원하는 프로그램을 편리하게 만들 수 있습니다.


☆ 웹 개발용 언어 :: 홈페이지와 같은 웹 페이지를 만들기 위한 프로그래밍 언어

→ HTML, CSS, JavaScript, PHP, ASP 등이 있고 페이지의 작성, 운영, 관리 등을 할 수 있습니다.


☆ 게임 개발용 언어 :: 게임을 개발하기 위한 프로그래밍 언어

→ Unity, ActionScript, BlitzMax 등이 있고 게임 설계, 개발, 테스트, 유지 관리 등을 할 수 있습니다.


☆ 범용 프로그래밍 언어 :: 다목적 프로그래밍 언어

→ C, C++, C#, JAVA, Python 등이 있고 다양한 목적을 위해 여러 가지 형태로 사용됩니다.


☆ 교육용 프로그래밍 언어 :: 프로그래밍 교육을 위한 언어

→ Scratch, entry, app inventor 등이 있고 블록 코딩 형태인 경우가 많습니다.


▶ 프로그래밍 방법에 대한 분류


☆ 절차적 프로그래밍

명령어, 함수, 연산자 등을 이용하여 컴퓨터가 처리해야 하는 작업들을 절차적으로

작성하는 방법으로, 대부분의 프로그래밍 언어에서 지원되는 가장 기본적인 방법입니다.


☆ 객체 지향 프로그래밍

클래스를 이용하여 객체를 만들고, 그 객체들을 이용하여 프로그래밍하는 방법으로, 데이터의

추상화, 캡슐화, 모듈화, 메시징, 다형성, 상속 등 다양한 특징을 가지며 C++, JAVA 등이 해당됩니다.


☆ 이벤트 기반 프로그래밍

객체 지향 프로그래밍 기반 위에 마우스 클릭이나 드래그를 사용한 버튼, 텍스트 박스 등의 이벤트를

이용하여 프로그래밍하는 방법으로 GUI 운영체제 개발에 사용되는 Visual C++, Swift 등이 있습니다.


☆ 데이터 흐름형 프로그래밍

데이터들의 흐름을 나타내는 선들을 연결하여 프로그래밍하는 방법으로 Lab-VIEW(G) 등이 있습니다.



프로그래밍 언어의 특징


기계어의 특징

기계어는 CPU와 같은 하드웨어들을 직접 동작시킬 수 있는 저급 프로그래밍 언어로, 전기 신호를 표현하는

0과 1로만 이루어진 2진 코드 형태이고, 하드웨어에 따라 제어 신호나 명령들이 다르기에 하드웨어에 대한

전문적인 지식이 없으면 사용하기가 매우 어렵기에 기계어를 직접 치는 경우는 거의 없습니다.



어셈블리어의 특징

어셈블리어는 기계어와 1:1로 대응되는 언어로, 0과 1로만 이루어져 있어 쉽게 사용하기가 어려운 기계어의

사용을 보다 쉽게 하기 위해 만들어졌습니다. 어셈블리어로 작성된 프로그램은 '어셈블러'라는 프로그램으로

기계어 번역을 한 뒤 실행시킵니다.



고급 언어의 특징

기계어, 어셈블리어 등의 저급 언어는 하드웨어에 대한 전문적인 지식 없이는 사용하기 힘들지만, C++, JAVA와

같은 고급 언어들은 전문적인 지식 없이도 프로그램을 작성할 수 있습니다. 대부분의 고급 언어에서는 반복되는

과정이나 모듈화된 작업을 위해 함수, 프로시저, 서브루틴 등의 기능을 사용하여 프로그래밍 할 수 있으며 각각의

언어마다 같은 입력에 대한 출력이어도 문법의 차이를 보입니다.



이미지 출처: 픽사베이

7,000

8

댓글

  • rirus 님이 감사의 마음으로 kingsnake님께 0알을 증정했어요!

  • leeym1220 님이 감사의 마음으로 kingsnake님께 0알을 증정했어요!