Programming Languages [PL] (12) 썸네일형 리스트형 [PL] 04. Names, Bindings, and Scopes 기본 개념 명령형 언어(Imperative language)는 폰 노이만 아키텍처(컴퓨터를 처리장치와 메모리가 연결된 것)를 가정. CPU가 메모리에서 명령어를 가져오고 가져온 명령어를 해석하고 해석한 것을 실행. 실행한 것을 다시 레지스터(임 시저장)와 메모리에 써준다. 결국 변수를 처리하는 것이다. 변수는 속성(attribute)에 따라 특징이 결정됨. (type을 디 자인하려면, scope, lifetime, type checking, initialization, type compatibility를 고려) 변수의 이름 변수의 주소(메모리의 번지수) 변수의 값 변수의 타입 변수의 Scope (변수를 볼 수 있는 영역은 어떻게 되느냐) (내가 변수를 선언한 블럭의 아래 블럭에선 쓸 수 있지만 위에선 불.. [PL] 03. Lexical and Syntax Analysis 기본 개념 언어 구현 시스템은 특정 구현 방법과 관계없이 소스 코드(문자 파일_Character가 연속적으로)를 분석해야 합니다. Lexical Analysis : 캐릭터를 받아들이고 패턴 매칭. 내가 정의한 키워드, 연산자, id 등이 맞는지 패턴이 유효한지 판 단해서 유효한 것들을 뽑아내는 것. 유효한 것 하나하나 => lexeme (/ token) Syntax Analysis : BNF(구문의 형식적 설명)에 맞는지 판단해서 파스 트리를 생성 BNF를 쓰는 이유 명확하고 간결한 Syntax 묘사 파서가 직접적으로 BNF 이용 가능 BNF 사용 파서는 유지 보수가 쉬움 Lexical Analysis의 입력은 소스 코드, 출력은 Syntax Analysis의 입력, Syntax의 출력은 Syntax T.. [PL] 02. Describing Syntax and Semantics 기본 개념 Syntax : Expression, Statement, Program unit의 형태 또는 구조 (어떻게 표현하는지) Semantics : Expression, Statement, Program unit의 뜻 (어떤 의미를 가지는지) Syntax와 Semantics는 언어 정의를 제공 언어 정의의 사용자 : 언어 디지이너, 구현자(언어를 컴퓨터 프로그램으로), 개발자 등 Syntax(문법)을 기술하는 것이 Semantics(의미론)을 기술하는 것보다 쉬움 -> 보편적인 표기법이 존재하기 때문 A sentence : Sentential Form의 하위 분류 / Non-terminal이 아닌 Terminal로만 이루어진 String의 묶음 A language : Sentence들의 집합 A le.. [PL] 01. Preliminaries 프로그래밍의 적용 분야 (Programming Domain) 과학 : 대규모 소수점 연산, 배열 사용 / Fortran 비즈니스 : 리포트 생성, 10진수 및 문자 사용 / COBOL AI : 숫자 대신 기호 조작, 리스트 사용 / LISP 시스템 프로그래밍 : 지속적인 사용으로 인한 필요성 / C 웹 소프트웨어 : 마크업(문서나 데이터의 구조를 표현하는 것)(HTML), 스크립팅(PHP), 일반 목적(JAVA) 언어 평가 기준 (Language Evaluation Criteria) Readability 전반적인 간단함 : 관리 가능한 구조와 특징의 집합 / 최소한의 기능 다중성 / 최소한의 연산자 오버로딩 직교성(Orthogonality) : 상대적 작은 수의 기본 구성요소가 상대적으로 적은 방법으로 .. 이전 1 2 다음