Разделы презентаций


Classification of programming languages

SourcesText: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,

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

Слайд 1Classification of programming languages. 

Classification of programming languages. 

Слайд 2Sources
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.

© O. Nierstrasz

PS — Introduction

1.

SourcesText:Kenneth C. Louden, Programming Languages: Principles and Practice, PWS Publishing (Boston), 1993.Other Sources:Paul Hudak, “Conception, Evolution, and

Слайд 3What 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?

A programming language is a notational system for describing computation in a machine-readable and human-readable form.
— Louden

What is a Programming Language?A formal language for describing computation?A “user interface” to a computer?Syntax + semantics?Compiler,

Слайд 4Generations 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

© O. Nierstrasz

PS — Introduction

1.

Generations of Programming Languages1GL: 	machine codes2GL: 	symbolic assemblers3GL: 	(machine-independent) imperative languages (FORTRAN, Pascal, C ...)4GL: 	domain specific

Слайд 5How 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;

Слайд 6Programming Paradigms

Programming Paradigms

Слайд 7Compilers and Interpreters
Compilers and interpreters have similar front-ends, but have

different back-ends.

Compilers and InterpretersCompilers and interpreters have similar front-ends, but have different back-ends.

Слайд 8A Brief Chronology
© O. Nierstrasz
PS — Introduction
1.

A Brief Chronology© O. NierstraszPS — Introduction1.

Слайд 9Functional 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 LanguagesISWIM (If you See What I Mean)Peter Landin (1966) — paper proposalFPJohn Backus (1978) — Turing

Слайд 10Object-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

Begin
while 1 = 1 do begin
outtext ("Hello World!");
outimage;
end;
End;

Transcript show:'Hello World';cr

Object-Oriented LanguagesHistorySimula was developed by Nygaard and Dahl (early 1960s) in Oslo as a language for simulation

Слайд 11Object-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 LanguagesInnovationsEncapsulation of data and operations (contrast ADTs)Inheritance to share behaviour and interfacesSuccessesSmalltalk project pioneered OO user

Слайд 12Interactive 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)




...

10 print "Hello World!"
20 goto 10

Interactive LanguagesMade possible by advent of time-sharing systems (early 1960s through mid 1970s).BASICDeveloped at Dartmouth College in

Слайд 13Interactive 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)



© O. Nierstrasz

PS — Introduction

1.

'HELLO WORLD'

Interactive Languages ...APLDeveloped by Ken Iverson for concise description of numerical algorithmsLarge, non-standard alphabet (52 characters in

Слайд 14Special-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



...

© O. Nierstrasz

PS — Introduction

1.

OUTPUT = 'Hello World!'
END

Special-Purpose LanguagesSNOBOLFirst successful string manipulation languageInfluenced design of text editors more than other PLsString operations: pattern-matching and

Слайд 15Symbolic 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



(DEFUN HELLO-WORLD ()
(PRINT (LIST 'HELLO 'WORLD)))

Symbolic Languages ...LispPerforms computations on symbolic expressionsSymbolic expressions are represented as listsSmall set of constructor/selector operations to

Слайд 16The 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 languagesvery activeDomain-specific languagesvery activeVisual languagesmany developments, but still immatureModeling languagesemerging from UML and MDE …

Слайд 17What 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

Слайд 18Can 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

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика