프로그래밍 언어(PL)

프언 ch1)프로그래밍 언어론

chris3471 2025. 3. 24. 13:46
728x90
반응형

1. 프로그래밍 언어란?

정의

  • 프로그래밍 언어계산 과정을 기계가 읽을 수 있고 사람이 이해할 수 있도록 표현하는 표기법이다.
  • 기계를 제어하는 수단이며, 사람이 프로그램을 작성하여 실행시키기 위한 도구이다.

프로그래밍 언어의 역할

  • 새로운 아이디어를 표현하는 능력 향상
  • 적절한 언어 선택 능력 배양
  • 새로운 언어 학습 능력 향상
  • 프로그램 구현의 효율성 개선
  • 소프트웨어 및 컴퓨팅 기술 발전

2. 프로그래밍 언어를 배우는 이유

프로그래밍 언어 학습의 필요성

  1. 언어의 구조와 개념 이해
    • 이론을 기반으로 다양한 언어를 깊이 이해할 수 있음.
    • 새로운 프로그래밍 언어를 학습하고 설계하는 능력 배양.
    • 적절한 프로그래밍 언어를 선택하여 문제 해결 가능.
  2. 언어 처리 기술의 이해
    • 컴파일러, 인터프리터 등의 언어 처리 기술을 이해할 수 있음.
    • 자연어 처리, 프로그래밍 언어 이해, 프로그램 분석 등에 활용.
  3. 컴퓨팅 기술의 발전과 연관
    • 객체지향 프로그래밍, 엣지 컴퓨팅, 인공지능과 같은 최신 기술과 밀접한 연관.

3. 프로그래밍 언어의 주요 패러다임

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

  1. 명령형(Imperative) / 절차형(Procedural) 언어
    • 예: C, Pascal, Fortran
    • 명령어를 순차적으로 실행하는 방식.
    • 변수, 반복문, 조건문 등을 이용한 전통적인 프로그래밍 방식.
  2. 함수형(Functional) 언어
    • 예: LISP, Scheme, ML, Haskell
    • 수학적 함수 개념을 기반으로 상태 변화 없이 프로그램을 실행.
  3. 논리형(Logic) 언어
    • 예: Prolog
    • 논리 규칙을 기반으로 질의(Query)에 대한 답을 도출하는 방식.
  4. 객체지향(Object-Oriented) 언어
    • 예: C++, Java, Python, Smalltalk
    • 데이터와 해당 데이터를 조작하는 메서드를 하나의 객체로 묶어서 설계하는 방식.

언어에 따른 사고 방식 차이

  • 사용 언어에 따라 프로그래머의 사고 방식이 달라질 수 있음.
  • 예를 들어, 객체지향 언어는 객체 단위의 사고를, 함수형 언어는 함수 조합을 중심으로 사고하도록 유도함.

4. 프로그래밍 언어의 역사

📌 1950년대: 고급 프로그래밍 언어의 시작

FORTRAN (Formula Translation)

  • 최초의 고급 프로그래밍 언어, 과학 및 공학 계산을 위해 개발됨.
  • 주요 기능: 배열, FOR 반복문, IF 조건문 지원.

COBOL (Common Business-Oriented Language)

  • 비즈니스 및 금융 애플리케이션을 위한 프로그래밍 언어.
  • 사람이 읽기 쉬운 문법을 강조.

LISP (LISt Processor)

  • 리스트 기반 프로그래밍 언어로 인공지능 연구에서 많이 사용됨.
  • 재귀호출을 기본적으로 지원.

📌 1960년대: 프로그래밍 언어의 다양성

Algol60

  • 알고리즘을 기술하기 위한 강력한 범용 언어.
  • Pascal, C, Modula-2 등의 현대적인 명령형 언어에 영향을 줌.
  • begin-end 블록 구조 도입.

PL/I

  • FORTRAN, COBOL, Algol60의 장점을 결합한 범용 언어.
  • 하지만 복잡성이 높아 오류 발생이 많음.

Simula-67

  • 최초의 객체지향 프로그래밍 언어.
  • 시뮬레이션을 위해 개발되었으며, 객체와 클래스 개념을 처음 도입.

BASIC

  • 교육용 언어로 설계됨.
  • 이후 Microsoft의 Visual Basic으로 발전.

📌 1970년대: 단순성과 새로운 언어의 추구

Pascal

  • 교육용 프로그래밍 언어로 개발됨.
  • 블록 구조와 구조적 프로그래밍 개념을 강조.

C 언어

  • 유닉스 운영체제 개발을 위해 만들어진 시스템 프로그래밍 언어.
  • 하드웨어와 밀접하게 동작하면서도 고급 기능 제공.

Prolog

  • 논리형 프로그래밍 언어로, 인공지능 및 자연어 처리에 사용됨.

ML

  • 함수형 프로그래밍 언어로, Pascal과 유사한 문법을 가짐.
  • 강력한 타입 시스템을 제공.

📌 1980년대: 객체지향 프로그래밍의 등장

Ada

  • 미국 국방부(DoD)에서 개발한 강력한 프로그래밍 언어.
  • 추상 자료형, 병행 프로그래밍, 예외 처리 기능 포함.

Smalltalk

  • 순수 객체지향 프로그래밍 언어.
  • Ruby, Objective-C, Java 등에 영향을 줌.
  • 최초로 **GUI(Graphical User Interface)**를 지원.

C++

  • C 언어를 확장하여 객체지향 프로그래밍(OOP) 기능 추가.
  • 기존 C의 효율성을 유지하면서 클래스, 상속, 다형성 등을 제공.

📌 1990년대: 인터넷과 웹 프로그래밍 언어

Python

  • 인터프리터 방식의 언어로, 문법이 간결하고 가독성이 높음.
  • 빅데이터, 인공지능, 교육용 프로그래밍 등에 널리 사용됨.

Java

  • 인터넷 환경을 위해 설계된 객체지향 프로그래밍 언어.
  • 플랫폼 독립성 (JVM 사용).
  • 웹, 모바일 애플리케이션 개발에서 널리 사용됨.

JavaScript

  • 웹 애플리케이션의 클라이언트-사이드 프로그래밍을 위해 개발됨.
  • Node.js 등장 후 서버 프로그래밍에도 활용.

📌 2000년대 이후: 최신 프로그래밍 언어

C#

  • 마이크로소프트에서 Java를 모방하여 개발한 닷넷( .NET ) 기반 언어.

Scala

  • 객체지향과 함수형 프로그래밍을 결합한 다중 패러다임 언어.

Swift

  • Apple이 개발한 언어로, 기존 Objective-C를 대체하기 위해 설계됨.

5. 결론

  • 프로그래밍 언어의 발전은 소프트웨어 개발 패러다임 변화와 밀접하게 연관됨.
  • 객체지향, 함수형, 논리형 언어가 발전하면서 더 효율적이고 직관적인 코드 작성 가능.
  • 앞으로도 인공지능, 빅데이터, 클라우드 컴퓨팅 환경에 맞춘 새로운 언어들이 지속적으로 등장할 것.
728x90
반응형