Computer Science/프로그래밍언어론

    [Programming Language Pragmatics] 07 Data Types(1)

    [Programming Language Pragmatics] 07 Data Types(1)

    [07 Data Types(1)] 7.1~7.2 Table of Contents 7.1 Type Systems - 7.1.1 Type Checking - 7.1.2 Polymorphism - 7.1.3 The Meaning of “Type” - 7.1.4 Classification of Types - 7.1.5 Orthogonality 7.2 Type Checking - 7.2.1 Type Equivalence - 7.2.2 Type Compatibility - 7.2.3 Type Inference - 7.2.4 The ML Type System 7.3 Parametric Polymorphism 7.4 Equality Testing and Assignment 7.1 Type Systems 대부분의 프로그..

    [Programming Language Pragmatics] 06 Control Flow(3)

    [Programming Language Pragmatics] 06 Control Flow(3)

    [06 Control Flow(3)] 6.5~6.7 Table of Contents 6.5. Iteration - 6.5.1 Enumeration-Controlled Loops - 6.5.2 Combination Loops - 6.5.3 Iterators - 6.5.4 Generators in Icon(패스) - 6.5.5 Logically Controlled Loops 6.6 Recursion - 6.6.1 Iteration and Recursion - 6.6.2 Applicative- and Normal-Order Evaluation 6.7 Nondeterminancy 6.5. Iteration Iteration과 recursion 두 메카니즘은 비슷한 연산을 반복적으로 컴퓨터에게 수행시키는 것 절차..

    [Programming Language Pragmatics] 06 Control Flow(2)

    [Programming Language Pragmatics] 06 Control Flow(2)

    [06 Control Flow(2)] 6.1.3~6.3 Table of Contents 6.1. Expression Evaluation - 6.1.3 Initialization - 6.1.4 Ordering within Expressions - 6.1.5 Short-Circuit Evaluation 6.2 Structured and Unstructured Flow - 6.2.1 Structured Alternatives to goto - 6.2.2 Continuations(수업에서 다루지 않음) 6.3 Sequencing 6.4 Selection - 6.4.1 Short-Circuited Conditions - 6.4.2 Case/Switch Statements 6.1.3 Initialization - ..

    [Programming Language Pragmatics] 06 Control Flow(1)

    [Programming Language Pragmatics] 06 Control Flow(1)

    [06 Control Flow (1) ] 6.0~6.1.2 Table of Contents 6.0 Introduction 6.1. Expression Evaluation - 6.1.1 Precedence and Associativity - 6.1.2 Assignments 6.0 Introduction Control flow or ordering in program execution Sequencing : 절차지향언어에서는 기본적으로 순차적으로 코드 실행 Selection(alternation) : 조건문 : 특정 런타임 컨디션에 의존함, 가장 자주 볼 수 있는 구조의 조건문은 if 와 case(switch) 문임 Iteration : 반복문 : 반복적으로 특정 부분의 코드가 실행됨 예로는 for/do, ..

    [Programming Language Pragmatics] 03 Names, Scopes, and Bindings(3)

    [Programming Language Pragmatics] 03 Names, Scopes, and Bindings(3)

    (해당 강의노트는 Michael L. Scott의 [Programming Language Pragmatics: 4th edition] 책을 기반으로 작성되었습니다) [ 03 Names, Scopes, and Bindings(3)] 3.4~3.7 Table of Contents 3.4 Implementing Scope - 3.4.1 Symbol Tables - 3.4.2 Association Lists and Central Reference Tables 3.5 The Meaning of Names within a Scope - 3.5.1 Aliases - 3.5.2 Overloading - 3.5.3 Polymorphism and Related Concepts 3.6 The Binding of Refere..

    [Programming Language Pragmatics] 01 Introduction

    [Programming Language Pragmatics] 01 Introduction

    (해당 강의노트는Michael L. Scott의 [Programming Language Pragmatics : 4th edition] 책을 기반으로 작성되었습니다) 01 Introduction Table of Contents Introduction The art of Language Design The Programming Language Spectrum (pass) (pass) (pass) An Overview of Compilation 0. Introduction Programming in Old Days 초기 컴퓨터들은 monstrous 장치였음 monstrous: very bad, because too big Programmers were cheap Machine language로 프로그래밍 함 ..

    [Programming Language Pragmatics] 03 Names, Scopes, and Bindings(2)

    [Programming Language Pragmatics] 03 Names, Scopes, and Bindings(2)

    (해당 강의노트는 Michael L. Scott의 [Programming Language Pragmatics: 4th edition] 책을 기반으로 작성되었습니다) [ 03 Names, Scopes, and Bindings(2)] 3.3 Scope Rules Table of Contents 3.3 Scope Rules - 3.3.1 Static Scoping - 3.3.2 Nested Subroutines - 3.3.3 Declaration Order - 3.3.4 Modules - 3.3.5 Module Types and Classes - 3.3.6 Dynamic Scoping 3.3 Scope Rules Scope of a binding란? 바인딩이 활성화된 프로그램의 textual region St..

    [Programming Language Pragmatics] 03 Names, Scopes, and Bindings(1)

    [Programming Language Pragmatics] 03 Names, Scopes, and Bindings(1)

    (해당 강의노트는 Michael L. Scott의 [Programming Language Pragmatics : 4th edition] 책을 기반으로 작성되었습니다) [03 Names, Scopes, and Bindings(1)] 3.0~3.2 Table of Contents 3.0. Abstraction 3.1. The Notion of Binding Time 3.2. Object Lifetime and Storage Management - 3.2.1 Static Allocation - 3.2.2 Stack-Based Allocation - 3.2.3 Heap-Based Allocation - 3.2.4 Garbage Collection 3.0. Abstraction Fortran, Algol, Lis..