Programming Language/Theory 15

[PLT/프로그래밍언어론] 05. Memory Management

Memory Management인터프리터의 주요 기능. 프로그램이 실행되는 동안 다양한 정보(지역변수, 임시값..)가 생성/로드/저장PL에서는 메모리 접근 처리 방법을 결정해야 한다.Subprogram(a.k.a procedure, routine, function)함수, 루틴, 프로시저 다 같은 의미로 사용하겠다. 이론적으로는 반환 값이 있는 것을 subprogram이라고 함.Stack데이터를 쌓는 자료구조. LIFO 구조. 데이터 push/popStack and Procedure스택은 프로시저에 적합하다. 프로시저 또한 LIFO 구조로 호출/종료되기 때문. Env도 이 방식으로 처리 가능Heap(자료구조 아님)힙은 pq나 힙 정렬과 관련된 자료구조이지만, PL에서는 프로그램이 allocated 될 수 ..

[PLT/프로그래밍언어론] 04. Names, Bindings and Scopes

04. Names, Bindings and ScopesName: 단순히 다른 객체를 표현하거나 나타내는 일련의 문자. PL에서는 identifier의 형태name과 object는 같은 것이 아니다. 하나의 이름이 여러 다른 객체, 하나의 객체가 다른 이름을 가질 수 있다.Denotable Object: 이름을 부여할 수 있는 객체들사용자가 부여 : 변수, 매개변수, 함수….PL 부여 : primitive types, primitive operations, pre-defined constnatsBinding: Association(연관성) between a name and a denoted object.다양한 시점에서 생성될 수 있다static : 디자인, 프로그램 작성, 컴파일타임Dynamic : Run..

[PLT/프로그래밍언어론] 03. PL Principle 2

03. Principle 2#PLT이전 시간에 컴파일 Step에 대해 배웠다. 그 중 Syntax Analysis를 자세히 살펴보자.문법 vs. 의미론 vs. 화용론문법(Syntax)은 프로그램의 형식에 관한 것이다.의미론(Semantics)은 프로그램의 의미에 관한 것이다.화용론(Pragmatics)은 특정 맥락에서 프로그램의 의미를 다룬다.예시: 톰과 제리문법:"쥐가 고양이를 차고 있다." ➞ 올바름!"쥐 고양이를 차고 있다." ➞ 잘못됨!의미론:"쥐가 고양이를 차고 있다." ➞ "음, 잠깐만… 뭐라고?"화용론:"쥐는 제리, 고양이는 톰이다." ➞ "아하! 가능하군."문법에 중점세 가지 중, 이 강의에서는 문법에 더 중점을 둔다.다른 것들에 대해 논의하기 전에, 프로그래밍 언어를 어떻게 정의할지 알아..

[PLT/프로그래밍언어론] 02. PL Principle 1

02. Principle 1#PLTComputers and Turing MachineWhat is a Computer?이 강의에서는 PL을 중점으로 다룰 예정이다.우리는 프로그래밍 언어의 크리에이터가 된다고 생각하자.PL을 디자인할 때, 컴퓨터에서 프로그램이 동작하도록 하기 위해 많은 것들을 고려해야 하고, 우리는 이 부분을 중점으로 학습한다.PL의 관점에서 컴퓨터란 무엇인가요?프로그래밍 언어는 결국 컴퓨터에서 실행됩니다.프로그래밍 언어를 설계하거나 프로그래밍 언어로 프로그램을 개발하려면 ➞ 컴퓨터가 어떻게 작동하는지 이해해야 합니다.이 질문을 들으면 컴퓨터에 대한 다양한 이미지가 떠오를 수 있습니다.이번 주 강의에서는 이 질문에 대해 좀 더 이론적으로 살펴볼 것입니다.강의가 끝나면 컴퓨터에 대한 일반적..

[PLT/프로그래밍언어론] Programming Language Principles

Programming Language Principles#PLTComputers and Turing MachineWhat is a Computer?이 강의에서는 PL을 중점으로 다룰 예정이다.우리는 프로그래밍 언어의 크리에이터가 된다고 생각하자.PL을 디자인할 때, 컴퓨터에서 프로그램이 동작하도록 하기 위해 많은 것들을 고려해야 하고, 우리는 이 부분을 중점으로 학습한다.PL의 관점에서 컴퓨터란 무엇인가요?프로그래밍 언어는 결국 컴퓨터에서 실행됩니다.프로그래밍 언어를 설계하거나 프로그래밍 언어로 프로그램을 개발하려면 ➞ 컴퓨터가 어떻게 작동하는지 이해해야 합니다.이 질문을 들으면 컴퓨터에 대한 다양한 이미지가 떠오를 수 있습니다.이번 주 강의에서는 이 질문에 대해 좀 더 이론적으로 살펴볼 것입니다.강의가..