Lambda Calculus, Proof of Correctness? ?? - PowerPoint PPT Presentation

About This Presentation
Title:

Lambda Calculus, Proof of Correctness? ??

Description:

Lambda Calculus, Proof of Correctness 2 1 , term project (ABEEK ... – PowerPoint PPT presentation

Number of Views:109
Avg rating:3.0/5.0
Slides: 27
Provided by: 6649732
Category:

less

Transcript and Presenter's Notes

Title: Lambda Calculus, Proof of Correctness? ??


1
?? ?? ? ??
  • ????
  • Lambda Calculus, Proof of Correctness? ??
  • ??? 2??? ???? 1? ??, term project? ?? (ABEEK? ??
    ???), 5? ? ?? ???? ?? ??
  • ? ?? ???? ? ?? ?? ??
  • ??
  • ??, ?? ? 12? ??? ????
  • ??? 75?(1430-1545), ?? ???? ??

2
????
  • Http//borame.cs.pusan.ac.kr/lecture
  • ?????? (??)
  • 2002? ?? ??
  • 2002? ???, ?? ????
  • 2003, 2004, 2005, 2006, 2007, 2008, 2009? ????
  • ?? ???, ??, ?? ?? ??(??) ??
  • ?? ?? ??? ? ?? ??? ??? ????? ?? ???? ??? ? ??

3
Introduction
  • Programming Language Design and Implementation
    (4th Edition)
  • by T. Pratt and M. Zelkowitz
  • Prentice Hall, 2001
  • Sections 1-1.3.2

4
????
  • ??? ???? ??!! ??? ???? ??!!
  • ??? ??(Object), ??? ??, ???
  • ??? ??, ??
  • ??? ??? ?? ??? ??? ???, ??? ???? ???
  • ????? ???
  • ??????? !!
  • ??? ??? ???? ??? ? ?? ???? ??
  • ??? ??? ?? ??(??? ??? ??)
  • ??? ?? ????? ?? ? ???, ??? 1,000? ? ?? ????? ?? ?
    ??. (?? ??)
  • ??? ?? ?? ??? ???? ????
  • ??? ??? ???? ?? ????? ??? ?????? ??
  • ??? ??? ??? ???? ? (?? ????? ? ???)

5
Organization of Programming Languages
  • Understand how languages are designed and
    implemented
  • ??
  • Lexicon What sorts of words are legal?
  • Syntax -- What a program looks like?
  • Semantics -- What a program means?
  • Pragmatics ?? ???? ??? C??? int?
  • Implementation -- How a program executes
  • Understand most appropriate language for solving
    specific problems, For example
  • Pascal, C, Perl -- procedural, statement oriented
  • C, Java, Smalltalk -- Object oriented
  • ML, Lisp -- Functional
  • Prolog -- Rule-based
  • JavaScript, PHP, ASP.net, C Procedural,
    Event-driven accessing

6
Language Goals
  • During 1950s--1960s - Compile programs to execute
    efficiently.
  • There is a direct connection between language
    features and hardware - integers, reals, goto
    statements
  • Programmers cheap Machines expensive Keep the
    machine busy
  • But today
  • Compile programs that are built efficiently
  • CPU power and memory very cheap
  • Direct connection between language features and
    design concepts - encapsulation, records,
    inheritance, functionality, assertions
  • Event-driven programming, Service-oriented
    approach, Web-service, Very High-level Language

7
Python
  • Python is a general-purpose, high-level
    programming language. Its design philosophy
    emphasizes programmer productivity and code
    readability. Python's core syntax and semantics
    are minimalist, while the standard library is
    large and comprehensive.
  • Python supports multiple programming paradigms
    (primarily functional, object oriented and
    imperative), and features a fully dynamic type
    system and automatic memory management it is
    thus similar to Perl, Ruby, Scheme, and Tcl.
  • Python was first released by Guido van Rossum in
    1991.3 The language has an open,
    community-based development model managed by the
    non-profit Python Software Foundation. While
    various parts of the language have formal
    specifications and standards, the language as a
    whole is not formally specified. The de facto
    standard for the language is the CPython
    implementation.

8
(No Transcript)
9
Why study programming languages? (1)
  • To improve your ability to develop effective
    algorithms
  • Improper use of recursion
  • Object-oriented programming, logic programming,
    concurrent programming
  • To improve your use of your existing programming
    language
  • Data structures for arrays, strings, lists,
    records, set, bag, table (associative array)
  • Malloc() ? garbage collection
  • Implementation details of recursion, object
    classes, subroutine calls, exception(event)
    handling
  • Service-oriented developing
  • Web-service, Semantic web, Script language

10
Why study programming languages? (2)
  • To increase your vocabulary of useful programming
    constructs
  • Increase programming vocabulary and its
    implementation tech.
  • Coroutine, Semaphore, event-driven programming,
    associative array
  • Named parameter (keyword argument) (Ada, Python,
    Smalltalk, Common Lisp)
  • Name mangling (name decoration) _Z on C, C
  • Filename mangling Unix file names can contain
    colons or backslashes
  • To allow a better choice of programming language
  • Numeric computation C, FORTRAN, Ada
  • AI LISP, Prolog
  • Internet applications Perl, Java, HTML, XML,
    Web Service(SOAP), PHP, ASP.net, Python

11
Why study programming languages? (3)
  • To make it easier to learn a new language
  • Web programming (JavaScript, PHP), Semantic web
  • Python
  • To make it easier to design a new language
  • User interface design
  • C, COBOL, SMALLTALK? ??? ????? ???? ???? ?
    ??? ??

12
Evolution of software architecture
  • 1950s - Large expensive mainframe computers ran
    single programs (Batch processing)
  • 1960s - Interactive programming (time-sharing) on
    mainframes
  • 1970s - Development of Minicomputers and first
    microcomputers. Apple II. Early work on windows,
    icons, and PCs at XEROX PARC
  • 1980s - Personal computer - Microprocessor, IBM
    PC and Apple Macintosh. Use of windows, icons and
    mouse
  • 1990s - Client-server computing - Networking, The
    Internet, the World Wide Web
  • 2000s - P2P, Grid Computing, Web Service,
    Event-driven approach, Service-oriented
    programming, Script language,

13
Attributes of a good language (1)
  • Clarity, simplicity, and unity - provides both a
    framework for thinking about algorithms and a
    means of expressing those algorithms
  • Conceptual integrity
  • ?? ? APL, SNOBOL4
  • Orthogonality - every combination of features is
    meaningful
  • Fewer exceptions ? C???? !!!
  • Logical errors and inefficiency

14
(No Transcript)
15
(No Transcript)
16
Attributes of a good language(2)
  • Naturalness for the application - program
    structure reflects the logical structure of
    algorithm
  • Sequential algorithm, concurrent algorithm, logic
    algorithm, non-deterministic algorithm
  • Appropriate data structures, operations, control
    structures, natural syntax
  • Support for abstraction - program data reflects
    problem being solved
  • Data abstraction ltD,O,Cgt
  • Encapsulation

17
Attributes of a good language (3)
  • Ease of program verification - verifying that
    program correctly performs its required function
  • Verification/validation
  • standard, or specification requirements
  • the needs of the intended end-user or customer
  • Comments, assert()
  • Design specification
  • Programming environment - external support for
    the language
  • Debugger, syntax-directed editor
  • Supporting function, platforms
  • Smalltalk
  • Supporting all the software lifecycle phases

18
Attributes of a good language (continued)
  • Portability of programs - transportability of the
    resulting programs from the computer on which
    they are developed to other computer systems
  • Transportability
  • C, C, Pascal ? Java (Byte-code)
  • ML single source implementation
  • Cost of use - program execution, program
    translation, program creation, and program
    maintenance
  • Code optimization, (Smalltalk, Perl), lifecycle
    costs

19
Language paradigms
  • Imperative languages
  • Goal is to understand a machine state (set of
    memory locations, each containing a value)
  • Statement oriented languages that change machine
    state (C, Pascal, FORTRAN, COBOL, C, Java)
  • Syntax S1, S2, S3, ...
  • Applicative (functional) languages
  • Goal is to understand the function that produces
    the answer
  • Function composition is major operation (ML,
    LISP)
  • Syntax P1(P2(P3(X)))
  • Programming consists of building the function
    that computes the answer

20
(No Transcript)
21
(No Transcript)
22
(No Transcript)
23
Language paradigms (continued)
  • Rule-based languages
  • Specify rule that specifies problem solution
    (Prolog, BNF Parsing)
  • Other examples Decision procedures, Grammar
    rules (BNF)
  • Syntax Answer ? specification rule
  • Programming consists of specifying the attributes
    of the answer
  • Object-oriented languages
  • Imperative languages that merge applicative
    design with imperative statements (Java, C,
    Smalltalk)
  • Syntax Set of objects (classes) containing data
    (imperative concepts) and methods (applicative
    concepts)

24
(No Transcript)
25
New Paradigm
  • Internet, Home Computing, Ubiquitous Computing,
    Embedded Computing, etc
  • Languages and Compilers that are smart, small and
    safe
  • Moveable code ? agents
  • Independent from machines and programming
    environments
  • Supporting pragmatics or intelligence
  • Java, XML, Mobile computing. Mobile code
  • Event driven approach, Service-oriented
    Architecture, Web Service
  • Supports multiple paradigm Python

26
??? ????!!
  • (1) ? ActiveX? ??? Windows(???)?? ??? ?????? ?
    ?????? ??? ActiveX? ?? ????
  • ActiveX ?? ??? ???? ????
  • Wikipedia? ????!!!
  • (2) Orthogonality? C???? ???? ? ?? ??? ?? ???!
  • (3)??? ???? ??? ? ????? ??? ??????
  • (4) ????? ??? ?????
Write a Comment
User Comments (0)
About PowerShow.com