파이썬과 객체지향 프로그래밍 - 프로그래밍 언어론

1. 프로그래밍 언어론

프로그래밍 언어론 이론 중 핵심부분만! (특히 갈색 표시 용어만 가볍게 들어두고, 추후 그런 용어를 들어본정도면 충분)

  • 이론은 이번 달에 이 내용이 처음이자 마지막임!

프로그래밍 언어

  • 인간이 컴퓨터와 의사소통할 수 있도록 컴퓨터가 이해할 수 있는 명령으로 프로그램을 작성할 수 있도록 만든 언어

프로그래밍 언어 - 결국 인간과 컴퓨터간의 의사소통

  • 컴퓨터는 기계어만 이해한다.

기계어란: 0과 1로 된 이진수 형태로 CPU가 이해할 수 있는 코드

CPU가 수행할 수 있는 명령 - instruction set (기계어로 표시되는 명령어 집합)

  • Instruction set (명령어 집합)
    • 더하기, 빼기, 데이터 저장, 불러오기, if, return 등
    • 다음 예에서는 더하기의 예로, OP Code 가 일종의 Instruction set



저급 언어와 고급 언어: 원하는 언어로 컴퓨터에 명령을 전달할 수 있습니다.

저급 언어

  • 기계어: 0과 1로 된 2진수 언어
  • 어셈블리어: 기계어 명령을 알기쉬운 기호로 표시
    • 예: ADD A B
      • A 저장소에 있는 데이터에 B 저장소에 있는 데이터를 더해서, A 저장소에 저장해라!

고급 언어

  • 하드웨어의 기술적 요소를 상세하게 몰라도 쉽게(?) 작성하고 수정
    • 일상 언어(영어)에서 사용하는 표현으로 작성 가능
      • 예: +는 덧셈, -는 뺄셈
    • 기계어나 어셈블리어는 데이터 저장 주소를 정확히 알아야 하지만, 고급 언어는 주소 대신 변수 이름으로 저장 장소에 접근 가능
    • 명령어 하나로 다수 동작 지시 가능
      • 예: y = x + (z * k)
  • 대표적인 언어: C 언어, JAVA 언어, Python 언어 등
In [ ]:
 

고급 언어와 기계어를 제외한 저급 언어는 결국 기계어로 변환되서 CPU에 전달되어 실행됨

컴파일러: 고급 언어로 작성된 코드를 한번에 기계어로 변환하는 프로그램

  • 대표적인 언어: C언어, JAVA언어 등

인터프리터: 고급 언어로 작성된 코드를 한줄씩 기계어로 변환하는 프로그램

  • 대표적인 언어: Python, PHP, Ruby 등

프로그래밍 언어 역사

  • 1950년대: 어셈블리어, 포트란
  • 1960년대: 코볼, PL/I
  • 1970년대: C언어, 파스칼
  • 1980년대: Basic
  • 1990년대: C++언어, JAVA언어, Visual Basic, Python
  • 2000년대: Spark, Scala, Go


In [ ]: