🗊Презентация Programming languages

Нажмите для полного просмотра!
Programming languages, слайд №1Programming languages, слайд №2Programming languages, слайд №3Programming languages, слайд №4Programming languages, слайд №5Programming languages, слайд №6Programming languages, слайд №7Programming languages, слайд №8Programming languages, слайд №9Programming languages, слайд №10Programming languages, слайд №11Programming languages, слайд №12Programming languages, слайд №13Programming languages, слайд №14Programming languages, слайд №15Programming languages, слайд №16Programming languages, слайд №17Programming languages, слайд №18Programming languages, слайд №19Programming languages, слайд №20Programming languages, слайд №21Programming languages, слайд №22Programming languages, слайд №23Programming languages, слайд №24Programming languages, слайд №25Programming languages, слайд №26Programming languages, слайд №27Programming languages, слайд №28Programming languages, слайд №29Programming languages, слайд №30Programming languages, слайд №31Programming languages, слайд №32Programming languages, слайд №33Programming languages, слайд №34Programming languages, слайд №35Programming languages, слайд №36Programming languages, слайд №37Programming languages, слайд №38Programming languages, слайд №39Programming languages, слайд №40Programming languages, слайд №41Programming languages, слайд №42Programming languages, слайд №43Programming languages, слайд №44

Содержание

Вы можете ознакомиться и скачать презентацию на тему Programming languages. Доклад-сообщение содержит 44 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Programming Languages
1. Introduction
Prof. O. Nierstrasz
Spring Semester 2010
Описание слайда:
Programming Languages 1. Introduction Prof. O. Nierstrasz Spring Semester 2010

Слайд 2





Programming Languages
Описание слайда:
Programming Languages

Слайд 3





Roadmap
Course Schedule
Programming Paradigms
A Quick Tour of Programming Language History
Описание слайда:
Roadmap Course Schedule Programming Paradigms A Quick Tour of Programming Language History

Слайд 4





Roadmap
Course Schedule
Programming Paradigms
A Quick Tour of Programming Language History
Описание слайда:
Roadmap Course Schedule Programming Paradigms A Quick Tour of Programming Language History

Слайд 5





Sources
Text:
Kenneth C. Louden, Programming Languages: Principles and Practice, PWS Publishing (Boston), 1993.
Other Sources:
Paul Hudak, “Conception, Evolution, and Application of Functional Programming Languages,” ACM Computing Surveys 21/3, 1989, pp 359-411.
Clocksin and Mellish, Programming in Prolog, Springer Verlag, 1987.
Описание слайда:
Sources Text: Kenneth C. Louden, Programming Languages: Principles and Practice, PWS Publishing (Boston), 1993. Other Sources: Paul Hudak, “Conception, Evolution, and Application of Functional Programming Languages,” ACM Computing Surveys 21/3, 1989, pp 359-411. Clocksin and Mellish, Programming in Prolog, Springer Verlag, 1987.

Слайд 6





Schedule
Introduction
Stack-based programming
Scheme (guest lecture)
Functional programming
Types and polymorphism
Lambda calculus
Fixed points
Programming language semantics
Objects and types
Logic programming
Applications of logic programming
Visual programming
Final exam
Описание слайда:
Schedule Introduction Stack-based programming Scheme (guest lecture) Functional programming Types and polymorphism Lambda calculus Fixed points Programming language semantics Objects and types Logic programming Applications of logic programming Visual programming Final exam

Слайд 7





Roadmap
Course Schedule
Programming Paradigms
A Quick Tour of Programming Language History
Описание слайда:
Roadmap Course Schedule Programming Paradigms A Quick Tour of Programming Language History

Слайд 8





What is a Programming Language?
A formal language for describing computation?
A “user interface” to a computer?
Syntax + semantics?
Compiler, or interpreter, or translator?
A tool to support a programming paradigm?
Описание слайда:
What is a Programming Language? A formal language for describing computation? A “user interface” to a computer? Syntax + semantics? Compiler, or interpreter, or translator? A tool to support a programming paradigm?

Слайд 9





What is a Programming Language? (II)
Описание слайда:
What is a Programming Language? (II)

Слайд 10





Themes Addressed in this Course
Описание слайда:
Themes Addressed in this Course

Слайд 11





Generations of Programming Languages
1GL: 	machine codes
2GL: 	symbolic assemblers
3GL: 	(machine-independent) imperative languages (FORTRAN, Pascal, C ...)
4GL: 	domain specific application generators
5GL:	AI languages …
Each generation is at a higher level of abstraction
Описание слайда:
Generations of Programming Languages 1GL: machine codes 2GL: symbolic assemblers 3GL: (machine-independent) imperative languages (FORTRAN, Pascal, C ...) 4GL: domain specific application generators 5GL: AI languages … Each generation is at a higher level of abstraction

Слайд 12





How do Programming Languages Differ?
Common Constructs:
basic data types (numbers, etc.); variables; expressions; statements; keywords; control constructs; procedures; comments; errors ...
Uncommon Constructs:
type declarations; special types (strings, arrays, matrices, ...); sequential execution; concurrency constructs; packages/modules; objects; general functions; generics; modifiable state; ...
Описание слайда:
How do Programming Languages Differ? Common Constructs: basic data types (numbers, etc.); variables; expressions; statements; keywords; control constructs; procedures; comments; errors ... Uncommon Constructs: type declarations; special types (strings, arrays, matrices, ...); sequential execution; concurrency constructs; packages/modules; objects; general functions; generics; modifiable state; ...

Слайд 13





Programming Paradigms
Описание слайда:
Programming Paradigms

Слайд 14





Compilers and Interpreters
Compilers and interpreters have similar front-ends, but have different back-ends.
Описание слайда:
Compilers and Interpreters Compilers and interpreters have similar front-ends, but have different back-ends.

Слайд 15





Roadmap
Course Schedule
Programming Paradigms
A Quick Tour of Programming Language History
Описание слайда:
Roadmap Course Schedule Programming Paradigms A Quick Tour of Programming Language History

Слайд 16





A Brief Chronology
Описание слайда:
A Brief Chronology

Слайд 17





Fortran
History
John Backus (1953) sought to write programs in conventional mathematical notation, and generate code comparable to good assembly programs.
No language design effort (made it up as they went along)
Most effort spent on code generation and optimization
FORTRAN I released April 1957; working by April 1958
The current standard is FORTRAN 2003
(FORTRAN 2008 is work in progress)
Описание слайда:
Fortran History John Backus (1953) sought to write programs in conventional mathematical notation, and generate code comparable to good assembly programs. No language design effort (made it up as they went along) Most effort spent on code generation and optimization FORTRAN I released April 1957; working by April 1958 The current standard is FORTRAN 2003 (FORTRAN 2008 is work in progress)

Слайд 18





Fortran …
Innovations
Symbolic notation for subroutines and functions
Assignments to variables of complex expressions
DO loops
Comments
Input/output formats
Machine-independence
Successes
Easy to learn; high level
Promoted by IBM; addressed large user base
(scientific computing)
Описание слайда:
Fortran … Innovations Symbolic notation for subroutines and functions Assignments to variables of complex expressions DO loops Comments Input/output formats Machine-independence Successes Easy to learn; high level Promoted by IBM; addressed large user base (scientific computing)

Слайд 19





“Hello World” in FORTRAN
All examples from the ACM "Hello World" project:
www2.latech.edu/~acm/HelloWorld.shtml
Описание слайда:
“Hello World” in FORTRAN All examples from the ACM "Hello World" project: www2.latech.edu/~acm/HelloWorld.shtml

Слайд 20





ALGOL 60
History
Committee of PL experts formed in 1955 to design universal, machine-independent, algorithmic language
First version (ALGOL 58) never implemented; criticisms led to ALGOL 60
Innovations
BNF (Backus-Naur Form) introduced to define syntax (led to syntax-directed compilers)
First block-structured language; variables with local scope
Structured control statements
Recursive procedures
Variable size arrays
Successes
Highly influenced design of other PLs but never displaced FORTRAN
Описание слайда:
ALGOL 60 History Committee of PL experts formed in 1955 to design universal, machine-independent, algorithmic language First version (ALGOL 58) never implemented; criticisms led to ALGOL 60 Innovations BNF (Backus-Naur Form) introduced to define syntax (led to syntax-directed compilers) First block-structured language; variables with local scope Structured control statements Recursive procedures Variable size arrays Successes Highly influenced design of other PLs but never displaced FORTRAN

Слайд 21





“Hello World” in BEALGOL
Описание слайда:
“Hello World” in BEALGOL

Слайд 22





COBOL
History
Designed by committee of US computer manufacturers
Targeted business applications
Intended to be readable by managers (!)
Innovations
Separate descriptions of environment, data, and processes
Successes
Adopted as de facto standard by US DOD
Stable standard for 25 years
Still the most widely used PL for business applications (!)
Описание слайда:
COBOL History Designed by committee of US computer manufacturers Targeted business applications Intended to be readable by managers (!) Innovations Separate descriptions of environment, data, and processes Successes Adopted as de facto standard by US DOD Stable standard for 25 years Still the most widely used PL for business applications (!)

Слайд 23





“Hello World” in COBOL
Описание слайда:
“Hello World” in COBOL

Слайд 24





PL/1
History
Designed by committee of IBM and users (early 1960s)
Intended as (large) general-purpose language for broad classes of applications
Innovations
Support for concurrency (but not synchronization)
Exception-handling on conditions
Successes
Achieved both run-time efficiency and flexibility (at expense of complexity)
First “complete” general purpose language
Описание слайда:
PL/1 History Designed by committee of IBM and users (early 1960s) Intended as (large) general-purpose language for broad classes of applications Innovations Support for concurrency (but not synchronization) Exception-handling on conditions Successes Achieved both run-time efficiency and flexibility (at expense of complexity) First “complete” general purpose language

Слайд 25





“Hello World” in PL/1
Описание слайда:
“Hello World” in PL/1

Слайд 26





Functional Languages
ISWIM (If you See What I Mean)
Peter Landin (1966) — paper proposal
FP
John Backus (1978) — Turing award lecture
ML
Edinburgh
initially designed as meta-language for theorem proving
Hindley-Milner type inference
“non-pure” functional language (with assignments/side effects)
Miranda, Haskell
“pure” functional languages with “lazy evaluation”
Описание слайда:
Functional Languages ISWIM (If you See What I Mean) Peter Landin (1966) — paper proposal FP John Backus (1978) — Turing award lecture ML Edinburgh initially designed as meta-language for theorem proving Hindley-Milner type inference “non-pure” functional language (with assignments/side effects) Miranda, Haskell “pure” functional languages with “lazy evaluation”

Слайд 27





“Hello World” in Functional Languages
SML
Haskell
Описание слайда:
“Hello World” in Functional Languages SML Haskell

Слайд 28





Prolog
History
Originated at U. Marseilles (early 1970s), and compilers developed at Marseilles and Edinburgh (mid to late 1970s)
Innovations
Theorem proving paradigm
Programs as sets of clauses: facts, rules and questions
Computation by “unification”
Successes
Prototypical logic programming language
Used in Japanese Fifth Generation Initiative
Описание слайда:
Prolog History Originated at U. Marseilles (early 1970s), and compilers developed at Marseilles and Edinburgh (mid to late 1970s) Innovations Theorem proving paradigm Programs as sets of clauses: facts, rules and questions Computation by “unification” Successes Prototypical logic programming language Used in Japanese Fifth Generation Initiative

Слайд 29





“Hello World” in Prolog
Описание слайда:
“Hello World” in Prolog

Слайд 30





Object-Oriented Languages
History
Simula was developed by Nygaard and Dahl (early 1960s) in Oslo as a language for simulation programming, by adding classes and inheritance to ALGOL 60
Smalltalk was developed by Xerox PARC (early 1970s) to drive graphic workstations
Описание слайда:
Object-Oriented Languages History Simula was developed by Nygaard and Dahl (early 1960s) in Oslo as a language for simulation programming, by adding classes and inheritance to ALGOL 60 Smalltalk was developed by Xerox PARC (early 1970s) to drive graphic workstations

Слайд 31





Object-Oriented Languages
Innovations
Encapsulation of data and operations (contrast ADTs)
Inheritance to share behaviour and interfaces
Successes
Smalltalk project pioneered OO user interfaces
Large commercial impact since mid 1980s
Countless new languages: C++, Objective C, Eiffel, Beta, Oberon, Self, Perl 5, Python, Java, Ada 95 ...
Описание слайда:
Object-Oriented Languages Innovations Encapsulation of data and operations (contrast ADTs) Inheritance to share behaviour and interfaces Successes Smalltalk project pioneered OO user interfaces Large commercial impact since mid 1980s Countless new languages: C++, Objective C, Eiffel, Beta, Oberon, Self, Perl 5, Python, Java, Ada 95 ...

Слайд 32





Interactive Languages
Made possible by advent of time-sharing systems (early 1960s through mid 1970s).
BASIC
Developed at Dartmouth College in mid 1960s
Minimal; easy to learn
Incorporated basic O/S commands (NEW, LIST, DELETE, RUN, SAVE)
...
Описание слайда:
Interactive Languages Made possible by advent of time-sharing systems (early 1960s through mid 1970s). BASIC Developed at Dartmouth College in mid 1960s Minimal; easy to learn Incorporated basic O/S commands (NEW, LIST, DELETE, RUN, SAVE) ...

Слайд 33





Interactive Languages ...
APL
Developed by Ken Iverson for concise description of numerical algorithms
Large, non-standard alphabet (52 characters in addition to alphanumerics)
Primitive objects are arrays (lists, tables or matrices)
Operator-driven (power comes from composing array operators)
No operator precedence (statements parsed right to left)
Описание слайда:
Interactive Languages ... APL Developed by Ken Iverson for concise description of numerical algorithms Large, non-standard alphabet (52 characters in addition to alphanumerics) Primitive objects are arrays (lists, tables or matrices) Operator-driven (power comes from composing array operators) No operator precedence (statements parsed right to left)

Слайд 34





Special-Purpose Languages
SNOBOL
First successful string manipulation language
Influenced design of text editors more than other PLs
String operations: pattern-matching and substitution
Arrays and associative arrays (tables)
Variable-length strings
...
Описание слайда:
Special-Purpose Languages SNOBOL First successful string manipulation language Influenced design of text editors more than other PLs String operations: pattern-matching and substitution Arrays and associative arrays (tables) Variable-length strings ...

Слайд 35





Symbolic Languages ...
Lisp
Performs computations on symbolic expressions
Symbolic expressions are represented as lists
Small set of constructor/selector operations to create and manipulate lists
Recursive rather than iterative control
No distinction between data and programs
First PL to implement storage management by garbage collection
Affinity with lambda calculus
Описание слайда:
Symbolic Languages ... Lisp Performs computations on symbolic expressions Symbolic expressions are represented as lists Small set of constructor/selector operations to create and manipulate lists Recursive rather than iterative control No distinction between data and programs First PL to implement storage management by garbage collection Affinity with lambda calculus

Слайд 36





4GLs
“Problem-oriented” languages
PLs for “non-programmers”
Very High Level (VHL) languages for specific problem domains
Classes of 4GLs (no clear boundaries)
Report Program Generator (RPG)
Application generators
Query languages
Decision-support languages
Successes
Highly popular, but generally ad hoc
Описание слайда:
4GLs “Problem-oriented” languages PLs for “non-programmers” Very High Level (VHL) languages for specific problem domains Classes of 4GLs (no clear boundaries) Report Program Generator (RPG) Application generators Query languages Decision-support languages Successes Highly popular, but generally ad hoc

Слайд 37





“Hello World” in RPG
Описание слайда:
“Hello World” in RPG

Слайд 38





“Hello World” in SQL
Описание слайда:
“Hello World” in SQL

Слайд 39





Scripting Languages
History
Countless “shell languages” and “command languages” for operating systems and configurable applications
Описание слайда:
Scripting Languages History Countless “shell languages” and “command languages” for operating systems and configurable applications

Слайд 40





Scripting Languages ...
Innovations
Pipes and filters (Unix shell)
Generalized embedding/command languages (TCL)
Successes
Unix Shell, awk, emacs, HyperTalk, AppleTalk, TCL, Python, Perl, VisualBasic ...
Описание слайда:
Scripting Languages ... Innovations Pipes and filters (Unix shell) Generalized embedding/command languages (TCL) Successes Unix Shell, awk, emacs, HyperTalk, AppleTalk, TCL, Python, Perl, VisualBasic ...

Слайд 41





The future?
Dynamic languages
very active
Domain-specific languages
very active
Visual languages
many developments, but still immature
Modeling languages
emerging from UML and MDE …
Описание слайда:
The future? Dynamic languages very active Domain-specific languages very active Visual languages many developments, but still immature Modeling languages emerging from UML and MDE …

Слайд 42





What you should know!
What, exactly, is a programming language?
How do compilers and interpreters differ?
Why was FORTRAN developed?
What were the main achievements of ALGOL 60?
Why do we call C a “Third Generation Language”?
What is a “Fourth Generation Language”?
Описание слайда:
What you should know! What, exactly, is a programming language? How do compilers and interpreters differ? Why was FORTRAN developed? What were the main achievements of ALGOL 60? Why do we call C a “Third Generation Language”? What is a “Fourth Generation Language”?

Слайд 43





Can you answer these questions?
Why are there so many programming languages?
Why are FORTRAN and COBOL still important programming languages?
Which language should you use to implement a spelling checker?
A filter to translate upper-to-lower case? 
A theorem prover? 
An address database?
An expert system? 
A game server for initiating chess games on the internet? 
A user interface for a network chess client?
Описание слайда:
Can you answer these questions? Why are there so many programming languages? Why are FORTRAN and COBOL still important programming languages? Which language should you use to implement a spelling checker? A filter to translate upper-to-lower case? A theorem prover? An address database? An expert system? A game server for initiating chess games on the internet? A user interface for a network chess client?

Слайд 44





License
http://creativecommons.org/licenses/by-sa/3.0/
Описание слайда:
License http://creativecommons.org/licenses/by-sa/3.0/



Похожие презентации
Mypresentation.ru
Загрузить презентацию