2009년 2학기 프로그래밍 언어론 – 필기 자료

By | 2010/12/13

  2009년 2학기에 들었던 프로그래밍 언어론 필기 자료입니다. 그 때 스캔을 하였다고 생각하였는데 깜박하였나 봅니다. 그래서 면접 준비를 할 때 이 과목에 대한 준비가 조금 덜 되었습니다. 그 덕분에 면접 때 열심히 털렸죠.^^OTL

  이왕 스캔하는 거 같이 하기로 하여 진행하였고, 역시 여기에 올립니다. 1년이 지난 종이라서 그런지 작업하면서 종이가 좀먹은 듯한 느낌이 드네요. 이래서 이렇게 스캔을 해야 하는 듯싶습니다.ㅜ

  1. Introduction. 말 그대로 수업을 소개하는 곳입니다. 왜 이 수업을 들어야 하는지에 대한 얘기가 있습니다.
  2. Compilation. Compilation과 Interpretation의 차이, Implementation Strategies, Bootstrapping, Just-in-Time Compliation, Microcode, Scanning, Parsing, Sematic Analysis, Intermediate Form, Optimization, Code Generation, Symbol Table, Lexical Analysis, Syntax Analysis, Parse Tree, Syntax Tree, Regular Expression, Context-Free Grammar에 대한 설명이 있습니다.
  3. Names, Scopes, and Bindings. Name, Binding, Scope, Binding Time, Static Binding, Dynamic Binding, Static Allocation, Stack-Based Allocation, Stack Frame, Heap-Base Allocation, Scope Rule, Static Scoping, Static Link, Static Chain, Dynamic Scoping, Aliasing, Overloading, Polymorphic Function, Parametric polymorphism, Subtype polymorphism, Generic Functions, Subtype Polymorphism, Coercion에 대한 설명이 있습니다.
  4. Control Flow. Sfae Evaluation, Short-Circuiting, Value Model, Reference Model, Side Effect, Selection, Jump Table, Iteration, Recursion, Tail Recursion에 대한 설명이 있습니다.
  5. Types. Data Type, Type System, Type Checking, Strong typing, Static typing, Structural equivalence, Name equivalence, Type Conversion, Type Coercion, Type Cast, Record(Structure), Array, Dope Vector, String, Set, Pointer, Dangling Reference, Tombstone, Locks and Keys, List, File에 대한 설명이 있습니다.
  6. Control Abstraction. Static Allocation, Stack Frame, Register Save, Local Variable, Calling Sequence, Parameter Passing, Call-by-value, Call-by-reference, Call-by-closure, Call-by-result, Call-by-value/result, Call-by-sharing, Call-by-name, Read-only, Named parameter, Exception, Event, Coroutine에 대한 설명이 있습니다.
  7. Data Abstraction. Abstract Data Type, Object-Oriented Programming, Tiny Subroutine, Derived Class, Overloaded Constructor, Encapsulation, Dynamic Method Binding, Dispatch Table, Type Check, Multiple Inheritance에 대한 설명이 있습니다.
  8. Functional Languages. Church-Turing thesis, Turing Machine, Lambda Calculus, Recursion, Scheme, Lisp, Applicative order Evaluation, Normal order Evaluation, Map Reduce에 대한 설명이 있습니다.
  9. Logic Languages. Logic Programming, Horn Clause, Resolution, Unification, Prolog, Atom, Fact, Rule, Query, Resolution, Equality, Backward Chaining, Search Tree, SWI-Prolog에 대한 설명이 있습니다.
  10. Concurrency. Process, Thread, Multi-Process, Multi-Thread, Shared memory, Distributed memory, race condition, Cache coherence, Synchronization, Mutual exclusion, Condition synchronization, Parallel Programming, Coroutine, Preemption, Spin Lock, Barrier, Semaphore, Monitor, Conditional Critical Regions에 대한 설명이 있습니다.
  11. Scripting Languages. Shell script, Sed, Awk, Perl, Glue Lang, Tcl, Python, Ruby, CGI Script, PHP, JavaScript, Java applet, Java servlet에 대한 설명이 있습니다.
  12. Run-time Program Management. Run-time system, Virtual Machine, Java Virtual Machine, Java Bytecode, Common Language Infrasturcture(CLI), Just-in-time(JIT) Compilation에 대한 설명이 있습니다.
  13. Introduction to Lex & Yacc. Lex, Yacc, Flex, Bison에 대한 설명이 있습니다. Project 1 자료입니다.
  14. Dynamic Memory Mangement. Malloc, Free를 만들어 메모리를 관리하도록 하는 것입니다. 여기에 Free Block을 관리하기 위한 방법으로 Implicit List, Explicit List, Segregated Free List 등의 방법을 소개합니다. 그리고 First-fit, Next-fit, Best-fit에 대한 얘기도 나옵니다. Project 2 자료입니다.
  15. Binary Search Tree – Scheme & Prolog. Binary Search Tree를 Scheme와 Prolog에 구현하는 Project 3 자료입니다.
  16. 중간고사 및 기말고사 종이. 교수님께서는 시험칠 때 A4 한 장 지참을 허락하시기에 그것을 만들었습니다. 그것들을 스캔 하였습니다.

파일들

Chapter 01.pdf

Chapter 02.pdf

Chapter 03.pdf

Chapter 04.pdf

Chapter 05.pdf

Chapter 06.pdf

Chapter 07.pdf

Chapter 08.pdf

Chapter 09.pdf

Chapter 10.pdf

Chapter 11.pdf

Chapter 12.pdf

Chapter 13.pdf

Chapter 14.pdf

Chapter 15.pdf

Chapter 16.pdf

Leave a Reply