프로그래밍언어론 2023-03-02 수업정리

Flow

안전한 프로그래밍 언어?


교수님이 상담을 하는 상황을 가정해 보자, 상담을 위해 대기하고 있는 교수님의 오피스에 호랑이가 들어온다면? 매우 위험한 상황이다. 또한 한국어를 구사하지 못해 의사소통이 이루어지지 않는 사람이 들어오는 경우에도 상담이라는 목적을 달성할 수 없게 된다. 프로그래밍 언어에서도 마찬가지이다. 어떤 함수에 매개변수로 적절한 타입이 들어가지 않는다면 해당 함수가 비정상적으로 동작하거나 에러를 띄울 것이다.

프로그래밍 언어에 대한 담론


프로그래밍 패러다임


어떤 방식으로 프로그램을 작성해야 할 것인지, 프로그램 수행 모델은 어떨 지에 따라 프로그래밍 패러다임이 바뀐다. Church가 제시한 $\lambda - calculus$ 방식, 튜링의 튜링 머신 방식, 이후 춈스키가 분류한 언어의 4분류에 따른 각각의 방식 모두 별개의 프로그래밍 패러다임을 가진다.

추상화(Abstraction)란?


지금까지 CS에 대해 공부하면서 추상화 라는 표현에 대해 직관적으로만 이해했다. 아직 명확하게 정의된 형태로 이해가 가는 개념은 아니지만 일부 예시를 들자면 아래와 같다.

프로그램, 프로세스, 프로세서


익숙한 개념이지만 다시 한 번 정리하자면 아래와 같다.