본문 바로가기
컴퓨터 기초/프로그래밍 언어

프로그래밍 언어의 개요

by TechExplorer 2023. 2. 21.

프로그래밍 언어의 개념

프로그래밍 언어란, 인간이 컴퓨터에 명령을 내리기 위한 언어입니다. 프로그래밍 언어는 컴퓨터가 이해할 수 있는 기계어로 변환되어 실행됩니다.
프로그래밍 언어는 기계어와 같은 저수준(low-level) 언어와, 사람이 이해하기 쉬운 고수준(high-level) 언어로 구분됩니다. 기계어는 0과 1로 이루어진 이진수로, 컴퓨터가 이해할 수 있는 언어입니다. 이진수로 이루어져 있기 때문에 사람이 이해하기 어렵고 작성하기도 번거롭습니다.

반면 고수준 언어는 사람이 이해하기 쉽고 작성하기도 용이합니다. 대표적으로 C, C++, Java, Python 등이 있습니다. 이러한 고수준 언어는 인터프리터(Interpreter)나 컴파일러(Compiler)를 통해 기계어로 변환됩니다.

프로그래밍 언어는 다양한 종류가 있으며, 이 중에서도 주로 사용되는 언어는 계속해서 발전하고 있습니다. 프로그래밍 언어를 배우는 것은 기술적인 역량을 키우기 위해서는 매우 중요합니다.


저급 언어와 고급 언어

프로그래밍 언어는 저수준(low-level) 언어와 고수준(high-level) 언어로 구분할 수 있습니다.

 

저급 언어

저급 언어는 컴퓨터가 직접 이해하고 실행할 수 있는 언어로, 기계어(Machine Language)나 어셈블리어(Assembly Language)와 같은 언어가 이에 해당합니다.

기계어는 0과 1로 이루어진 이진 코드로, 컴퓨터 하드웨어가 직접 실행할 수 있는 코드입니다. 하지만 이진 코드는 사람이 이해하기 어렵기 때문에, 프로그래밍에 사용되는 건 매우 제한적입니다.

어셈블리어는 기계어를 대체하기 위해 개발된 언어로, 기계어와 거의 일대일 대응되는 기호 명령어를 사용합니다. 예를 들어, CPU에서 덧셈을 수행하기 위해서는 기계어로 "00100110 00000000 00000001"와 같은 이진코드를 사용해야 하지만, 어셈블리어에서는 "ADD R0, R1"과 같은 간단한 명령어를 사용할 수 있습니다.

저급 언어는 컴퓨터 하드웨어에 직접 접근할 수 있기 때문에, 하드웨어와의 최적화나 성능 향상에 유리합니다. 하지만 이해하기 어려운 문법과 코드 작성이 까다롭기 때문에, 개발자들은 보통 고수준 언어를 사용합니다.

 

고급 언어

고급 언어는 사람이 이해하기 쉬운 문법으로 작성된 언어입니다. 대표적으로 C, C++, Java, Python 등이 있습니다. 고급 언어를 사용하면, 개발자는 기계어나 어셈블리어와 같은 저급 언어보다 코드를 훨씬 빠르고 쉽게 작성할 수 있습니다.

고급 언어는 프로그래밍 문제 해결에 집중할 수 있도록 만들어진 언어입니다. 예를 들어, C나 Java와 같은 고급 언어에서는 변수 선언, 데이터 타입 지정, 메모리 할당 등과 같은 저수준의 작업들을 자동으로 처리해주기 때문에, 개발자는 코드 구현과 프로그램 디자인에 집중할 수 있습니다.

고급 언어는 기계어나 어셈블리어와 달리, 프로그램을 작성할 때 추상화(abstraction) 개념을 활용합니다. 추상화란 복잡한 문제를 해결하기 위해 필요한 핵심 기능만을 추출하여 간단하고 쉬운 인터페이스를 제공하는 것을 말합니다. 이러한 추상화 개념은 개발자들이 문제 해결에 집중할 수 있도록 하며, 코드의 재사용성과 유지보수성을 향상시킵니다.

고급 언어는 일반적으로 저급 언어보다 프로그램 작성 속도가 빠르고 코드의 가독성이 높습니다. 또한, 여러 플랫폼에서 동작하는 프로그램을 작성할 수 있습니다. 하지만, 고급 언어는 컴퓨터 하드웨어와의 직접적인 접근이 어려우며, 하드웨어의 성능을 최대한 발휘하기 어려울 수 있습니다. 이런 경우에는 보통 저급 언어를 사용합니다.


프로그래밍 언어의 발전

프로그래밍 언어는 컴퓨터가 이해할 수 있는 명령어를 사람이 이해하기 쉽게 표현한 언어입니다. 이러한 프로그래밍 언어는 컴퓨터 과학 분야의 발전과 함께 지속적으로 발전해왔습니다.

 

저급 언어

최초의 컴퓨터 언어는 기계어(machine language)였습니다. 이는 0과 1로 이루어진 이진 코드로 작성되어 있으며, 컴퓨터의 하드웨어와 밀접하게 연관되어 있습니다. 그러나 이러한 이진 코드는 사람이 이해하고 작성하기가 매우 어려워, 어셈블리어(assembly language)가 등장하게 됩니다. 어셈블리어는 기계어를 대신해서 사용할 수 있는 상대적으로 사람이 이해하기 쉬운 저급 언어입니다.

 

고급 언어

저급 언어를 대체하기 위해 고급 언어(high-level language)가 개발되었습니다. 이러한 고급 언어는 인간의 언어와 유사한 구문을 사용하므로 사람이 이해하고 작성하기가 훨씬 쉬워졌습니다. 대표적인 고급 언어로는 FORTRAN, COBOL, C, Pascal 등이 있습니다.

 

객체 지향 언어

객체 지향 프로그래밍(Object-Oriented Programming, OOP)이라는 개념이 등장하면서 객체 지향 언어가 개발되었습니다. 객체 지향 언어는 데이터와 이를 처리하는 메서드를 하나의 객체로 묶어서 프로그래밍을 할 수 있게 해줍니다. 이를 통해 프로그램의 구조화와 재사용성이 증가하였으며, 대표적인 객체 지향 언어로는 Java, C++, Python 등이 있습니다.

 

함수형 언어

함수형 프로그래밍(Functional Programming, FP)은 상태 변경을 피하고 입력과 출력 사이에 오로지 함수만 존재하도록 하는 프로그래밍 패러다임입니다. 함수형 언어는 이러한 함수형 프로그래밍을 지원하기 위해 설계되었습니다. 함수형 언어의 특징으로는 불변성(Immutability), 순수함수(Pure Function), 고차함수(High-order function) 등이 있으며, 대표적인 함수형 언어로는 Haskell, Scala, Clojure 등이 있습니다.

 

웹 개발 언어

웹의 등장으로 인해, 웹 개발을 위한 언어들이 개발되었습니다. 대표적으로는 HTML, CSS, JavaScript 등이 있습니다. HTML은 웹 페이지의 구조를 정의하는 마크업 언어이며, CSS는 웹 페이지의 스타일을 지정하는 스타일 시트 언어입니다. JavaScript는 웹 페이지에서 동적으로 동작하는 기능들을 구현하기 위한 스크립트 언어입니다.

 

인터프리터 언어

인터프리터 언어(Interpreter Language)는 컴파일러(compiler)를 사용하지 않고 인터프리터에 의해 실행되는 언어입니다. 인터프리터 언어의 장점은 개발과 디버깅이 쉽다는 것입니다. 대표적인 인터프리터 언어로는 Python, Ruby, Perl 등이 있습니다.


주요 프로그래밍 언어별 특징

각 프로그래밍 언어는 고유한 특징을 가지고 있으며, 이를 이용하여 다양한 프로그래밍 분야에서 활용됩니다. 이번에는 주요 프로그래밍 언어의 특징에 대해 설명하겠습니다.

 

Java

객체 지향 언어이며, 자바 가상 머신(JVM)에서 동작하므로 OS에 독립적입니다.
메모리 관리를 자동으로 처리하므로 안정성이 높습니다.
멀티스레딩, 네트워크 처리, 그래픽 처리 등 다양한 기능을 지원하며, 대규모 프로젝트에 적합합니다.

 

C

저급 언어이지만 하드웨어와 밀접한 연관이 있어 높은 성능을 보입니다.
메모리 관리를 수동으로 처리해야 하므로 안정성이 낮을 수 있습니다.
운영체제, 임베디드 시스템, 시스템 소프트웨어 등 다양한 분야에서 활용됩니다.

 

Python

동적 타입 언어로, 타입을 선언할 필요가 없으므로 코딩 속도가 빠릅니다.
가독성이 좋고, 문법이 간단하여 초보자에게도 쉽게 접근할 수 있습니다.
데이터 분석, 인공지능, 웹 개발 등 다양한 분야에서 활용됩니다.

 

C++

객체 지향 언어이며, C 언어를 기반으로 하여 개발되었습니다.
하드웨어와 밀접한 연관이 있어 높은 성능을 보입니다.
메모리 관리를 수동으로 처리해야 하므로 안정성이 낮을 수 있습니다.
게임 개발, 응용 소프트웨어 개발 등 다양한 분야에서 활용됩니다.

 

JavaScript

웹 브라우저에서 동작하는 스크립트 언어이며, 최근에는 서버 사이드 언어로도 활용됩니다.
동적 타입 언어로, 타입을 선언할 필요가 없으므로 코딩 속도가 빠릅니다.
jQuery, React, Vue.js 등의 라이브러리와 함께 사용하여 웹 개발에 적합합니다.

 

Swift

iOS 및 macOS 애플리케이션 개발에 사용되는 객체 지향 언어입니다.
안정적이고 빠른 애플리케이션 개발을 지원하며, Objective-C보다 간결하고 직관적인 문법을 가지고 있습니다.
애플의 아이폰, 아이패드, 맥북 등에서 실행되는 애플리케이션 개발에 적합합니다.

 

PHP

서버 사이드 스크립트 언어로, HTML과 함께 사용하여 동적 웹 페이지를 생성할 수 있습니다.
문법이 간단하고, 쉽게 배울 수 있으며, 무료로 사용할 수 있습니다.
WordPress, Facebook 등 대규모 웹사이트에서 활용되는 등 웹 개발 분야에서 많이 사용됩니다.

 

Go

구글에서 개발한 오픈 소스 프로그래밍 언어로, C++의 높은 성능과 Python의 쉬운 문법을 결합한 언어입니다.
동시성을 위한 기능이 탑재되어 있으며, 안정적이고 빠른 속도로 동작합니다.
클라우드 컴퓨팅, 대규모 분산 시스템, 네트워크 프로그래밍 등에 적합한 언어입니다.

댓글