PLT1
프로그래밍 언어 설계 원칙 간결성 (simplicity) : Pascal의 주된 설계 원칙은 간결성 : 직교성, 일반성, 획일성 : 간결성 보장 못함) Algol 68 : 구성자의 수가 적다고 언어가 간결한 것은 아님.) Lisp, Prolog : 적은 수의 구성자를 가지거나 복잡한 실행시간과 시스템에 의존적 : 과다한 단순성 : 알고리즘 작성 방해, 표...
언어의 구문과 구현 기법 언어 구문 정의 언어 - 구문, 의미 : 자연어 정의, 형식 정의 : 구문 형식 정의 - BNF, EBNF, 구문 도표 컴퓨터 프로그래밍 = 알고리즘 + 자료구조 : 컴퓨터에서 실행 하드웨어 컴퓨터 (실제 CPU) software simulator CPU virtual CPU 프로그래밍 언어 구현 기법

Syntax 개요 syntax : 반복적으로 정의되는 무한개의 문장들을 유한개의 규칙으로 정의하는 것 overview) Formal methods of describing syntax : CFG, BNF, EBNF Derivation, Parse Tree Ambiguous/Unambiguous grammar Semantics : Attribute gram...
recursion
Implementing Recursion 기존 방식 : with와 func를 사용한 재귀 표현 :: 복잡 새로운 방식(rec) : 간단 :: interpreter를 새롭게 update해야함. developer들의 선택은?? abstract syntax trait Expr case class Num(n: Int) extends Expr case clas...
Mutable Data Structure 해당 개념이 나오게 된 배경 : 함수형 프로그래밍은 일반적으로 불변 데이터를 선언함(val). 그런데 저런 불변 데이터를 가변 데이터화할 수 있다는 것에서 의의가 있음. 이에 PLT에서 해당 개념을 배우는 것임. >Scal