[프로그래밍 언어론] - 프로그래밍 언어의 구현
·
💻 Computer Science/프로그래밍 언어론
프로그래밍 언어 정의 어떤 프로그램이 올바른 형태인지, 올바른 프로그램을 실행했을 때 어떻게 실행되는 것이 올바른 것인지 규정하는 것을 "프로그래밍 언어 정의"라고 한다. 프로그래밍 언어의 형태에 관한 규정인 "구문(Syntax) 규칙"과 실행 결과에 관한 규정인 "의미(Semantics) 규칙"을 합쳐 프로그래밍 언어의 정의가 된다. 프로그래밍 언어 구현 프로그래밍 언어로 작성된 프로그램을 수행하는 프로그램을 "프로그래밍 언어 구현"이라고 한다. "함수 모형(Functional Model)"을 통해 프로그래밍 언어의 구현을 쉽게 이해할 수 있다. 어떤 프로그래밍 언어 $L$의 구현은 $L$로 작성된 어떤 프로그램 $P_L$이 주어졌을 때, 입력 데이터 $in$을 받아 출력 데이터 $out$을 내야한다...
[프로그래밍 언어론] - 구문 분석
·
💻 Computer Science/프로그래밍 언어론
프로그램 분석 문자가 모여 어휘를 분석하고, 어휘들이 구문에 맞추어 프로그램을 구성한다. 프로그램의 분석은 크게 "어휘 분석"과 "구문 분석"으로 구분된다. 어휘 분석 어휘 분석의 목적은 "프로그램에서 사용된 단어를 구별해 내는 것"이다. 어휘 분석을 통하여 얻어지는 결과를 "토큰(Token)"이라고 한다. 토큰은 문법적으로 더 이상 나누어질 수 없는 요소이며, 토큰에는 연산자, 구분자, 식별자, 예약어 등이 포함된다. 연산자(Operator): 연산을 수행하기 위해 사용되는 토큰으로, +, -, =, * 등이 있다. 구분자(Separator): 프로그래밍 요소를 구분하는 토큰으로, 세미콜론(;), 콤마(,) 등이 있다. 연산자를 제외한 대부분의 기호가 구분자이다. 식별자(Identifier): 프로그램..
[프로그래밍 언어론] - 구문론과 의미론
·
💻 Computer Science/프로그래밍 언어론
구문론과 의미론 사람들이 일반적으로 사용하는 언어는 오랜 시간 거쳐 발전해왔고, 이러한 언어를 연구하는 분야 중 대표적으로 "구문론(Syntax)"와 "의미론(Semantics)"이 있다. 구문론은 문장이 구성되는 방식을 연구하는 분야이고, 의미론은 문장이 나타내는 의미에 대해 연구하는 분야이다. 언어마다 특유의 문장 구성 방식이 있고 그에 맞춰 의미를 해석할 수 있다. 즉, 구문론과 의미론을 통하여 각 언어를 엄밀하게 정의할 수 있다. (이를 "언어의 형식적 정의"라고 한다.) 언어의 형식적 정의는 프로그래밍 언어에서도 매우 중요한데, 컴퓨터가 이해할 수 있도록 프로그래밍 언어는 명확한 구문과 의미가 정의되어야 한다. 또한 실제 프로그램을 작성하는 사람이 원하는 바를 잘 전달할 수 있도록 명확한 사용체..
[프로그래밍 언어론] - 프로그래밍 언어 패러다임
·
💻 Computer Science/프로그래밍 언어론
프로그래밍 패러다임의 변화 프로그래밍 패러다임이란, "프로그램을 작성하는 전형적인 방식"을 말한다. 프로그래밍 패러다임은 특정 프로그래밍 언어에 종속적인 것이 아니라, 프로그래머가 추구하는 프로그램 작성 방식에 따라 다르게 나타난다. 그럼에도 프로그래밍 언어가 자연스럽게 지원하는 프로그래밍 패러다임은 정해져 있다. 프로그래밍 패러다임 전환은 컴퓨팅 환경이 변화함에 따라 자연스럽게 진행되었다. 프로그래밍 패러다임은 단순히 프로그램에 대한 요구사항이 바뀐다고 즉각적으로 바뀌지 않는다. 프로그래밍 패러다임의 변화를 주도한 원인들이 있다. 프로그래밍 패러다임의 변화의 배경은 다음과 같다. 응용 도메인(Application Domain): 요구사항의 변화와 비슷한 개념으로, 초기 컴퓨터 프로그램의 요구사항이 "계..
[프로그래밍 언어론] - 프로그래밍 언어의 발전 및 동작 원리
·
💻 Computer Science/프로그래밍 언어론
프로그래밍 언어의 발전 컴퓨터 시스템과 운영체제가 발전해온 역사와 프로그래밍 언어가 어떻게 변화되어 왔는지에 대해서 자세히 알아보도록 하겠다. 프로그래밍의 역사를 살펴보는 것은 앞으로의 프로그래밍 언어론을 공부하는데 있어 도움이 될 것이다. 컴퓨터 시스템과 운영체제의 발전 컴퓨터 시스템은 계산을 빠르게 수행하기 위한 목적으로 만들어졌다. 최초의 컴퓨터로 잘 알려진 진공관식 전자 컴퓨터인 에니악이 1943~1946년에 만들어졌고, 실제 최초의 전자식 컴퓨터인 콜로서스도 1943~1945년에 만들어졌다. 그리고 저장 프로그램 방식의 최초 컴퓨터인 에드박이 1949년에 만들어졌다. 에드박은 프로그램과 처리기가 분리되어있다는 중요한 특성을 가진다. 이때, "프로그램" 개념이 정립되었다. 프로그램과 처리기가 분리..
[프로그래밍 언어론] - 프로그래밍 언어란 무엇인가
·
💻 Computer Science/프로그래밍 언어론
프로그래밍 언어의 정의 프로그래밍 언어는 프로그램 작성에 사용되는 언어로, 컴퓨터가 수행할 수 있고 사람이 읽을 수 있는 형태로 계산을 나타내는 표기 체계이다. 프로그래밍 언어의 특징은 다음과 같다. 프로그래밍 언어는 말이 아닌 글 형태로 사용된다. 프로그래밍 언어는 엄밀한 규칙을 따르고 있다. 프로그래밍 언어는 기계에 명령을 전달하는 단방향성을 띤다. 그러나 최근에는 사람이 읽기 쉬운 프로그램 언어를 작성하는 능력이 요구된다. 즉, 가독성을 고려해야 하기에 양방향성의 특성도 지닌다. 프로그래밍 언어의 기능 프로그래밍 언어가 제공하는 기본 기능은 크게 3가지가 있다. 작성력(Writability): 프로그래머의 의도를 나타낼 수 있도록 하는 충분한 구성 요소를 갖춰야 한다. 가독성(Readability)..
loading