X

Download Programming Language PowerPoint Presentation

SlidesFinder-Advertising-Design.jpg

Login   OR  Register
X


Iframe embed code :



Presentation url :

Home / Education & Training / Education & Training Presentations / Programming Language PowerPoint Presentation

Programming Language PowerPoint Presentation

Ppt Presentation Embed Code   Zoom Ppt Presentation

PowerPoint is the world's most popular presentation software which can let you create professional Programming Language powerpoint presentation easily and in no time. This helps you give your presentation on Programming Language in a conference, a school lecture, a business proposal, in a webinar and business and professional representations.

The uploader spent his/her valuable time to create this Programming Language powerpoint presentation slides, to share his/her useful content with the world. This ppt presentation uploaded by onlinesearch in Education & Training ppt presentation category is available for free download,and can be used according to your industries like finance, marketing, education, health and many more.

About This Presentation

Programming Language Presentation Transcript

Slide 1 - Programming Languages 1. Introduction Prof. O. Nierstrasz Spring Semester 2010
Slide 2 - © O. Nierstrasz PS — Introduction 1.2 Programming Languages
Slide 3 - © O. Nierstrasz PS — Introduction 1.3 Roadmap Course Schedule Programming Paradigms A Quick Tour of Programming Language History
Slide 4 - © O. Nierstrasz PS — Introduction 1.4 Roadmap Course Schedule Programming Paradigms A Quick Tour of Programming Language History
Slide 5 - © O. Nierstrasz PS — Introduction 1.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.
Slide 6 - © O. Nierstrasz PS — Introduction 1.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
Slide 7 - © O. Nierstrasz PS — Introduction 1.7 Roadmap Course Schedule Programming Paradigms A Quick Tour of Programming Language History
Slide 8 - What is a Programming Language? © O. Nierstrasz PS — Introduction 1.8 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
Slide 9 - What is a Programming Language? (II) © O. Nierstrasz PS — Introduction 1.9 A programming language is a tool for developing executable models for a class of problem domains. The thesis of this course:
Slide 10 - Themes Addressed in this Course © O. Nierstrasz PS — Introduction 1.10 Paradigms How do different language paradigms support problem-solving? Semantics How can we understand the semantics of programming languages? Foundations What are the foundations of programming languages?
Slide 11 - © O. Nierstrasz PS — Introduction 1.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
Slide 12 - © O. Nierstrasz PS — Introduction 1.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; ...
Slide 13 - © O. Nierstrasz PS — Introduction 1.13 Programming Paradigms
Slide 14 - © O. Nierstrasz PS — Introduction 1.14 Compilers and Interpreters Compilers and interpreters have similar front-ends, but have different back-ends.
Slide 15 - © O. Nierstrasz PS — Introduction 1.15 Roadmap Course Schedule Programming Paradigms A Quick Tour of Programming Language History
Slide 16 - © O. Nierstrasz PS — Introduction 1.16 A Brief Chronology
Slide 17 - © O. Nierstrasz PS — Introduction 1.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)
Slide 18 - © O. Nierstrasz PS — Introduction 1.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)
Slide 19 - © O. Nierstrasz PS — Introduction 1.19 “Hello World” in FORTRAN All examples from the ACM "Hello World" project: www2.latech.edu/~acm/HelloWorld.shtml PROGRAM HELLO DO 10, I=1,10 PRINT *,'Hello World' 10 CONTINUE STOP END
Slide 20 - © O. Nierstrasz PS — Introduction 1.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
Slide 21 - © O. Nierstrasz PS — Introduction 1.21 “Hello World” in BEALGOL BEGIN FILE F (KIND=REMOTE); EBCDIC ARRAY E [0:11]; REPLACE E BY "HELLO WORLD!"; WHILE TRUE DO BEGIN WRITE (F, *, E); END; END.
Slide 22 - © O. Nierstrasz PS — Introduction 1.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 (!)
Slide 23 - © O. Nierstrasz PS — Introduction 1.23 “Hello World” in COBOL 000100 IDENTIFICATION DIVISION. 000200 PROGRAM-ID. HELLOWORLD. 000300 DATE-WRITTEN. 02/05/96 21:04. 000400* AUTHOR BRIAN COLLINS 000500 ENVIRONMENT DIVISION. 000600 CONFIGURATION SECTION. 000700 SOURCE-COMPUTER. RM-COBOL. 000800 OBJECT-COMPUTER. RM-COBOL. 001000 DATA DIVISION. 001100 FILE SECTION. 100000 PROCEDURE DIVISION. 100200 MAIN-LOGIC SECTION. 100300 BEGIN. 100400 DISPLAY " " LINE 1 POSITION 1 ERASE EOS. 100500 DISPLAY "HELLO, WORLD." LINE 15 POSITION 10. 100600 STOP RUN. 100700 MAIN-LOGIC-EXIT. 100800 EXIT.
Slide 24 - © O. Nierstrasz PS — Introduction 1.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
Slide 25 - © O. Nierstrasz PS — Introduction 1.25 “Hello World” in PL/1 HELLO: PROCEDURE OPTIONS (MAIN); /* A PROGRAM TO OUTPUT HELLO WORLD */ FLAG = 0; LOOP: DO WHILE (FLAG = 0); PUT SKIP DATA('HELLO WORLD!'); END LOOP; END HELLO;
Slide 26 - © O. Nierstrasz PS — Introduction 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”
Slide 27 - © O. Nierstrasz PS — Introduction 1.27 “Hello World” in Functional Languages SML Haskell print("hello world!\n"); hello() = print "Hello World"
Slide 28 - © O. Nierstrasz PS — Introduction 1.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
Slide 29 - © O. Nierstrasz PS — Introduction 1.29 “Hello World” in Prolog hello :- printstring("HELLO WORLD!!!!"). printstring([]). printstring([H|T]) :- put(H), printstring(T).
Slide 30 - © O. Nierstrasz PS — Introduction 1.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 Begin while 1 = 1 do begin outtext ("Hello World!"); outimage; end; End; Transcript show:'Hello World';cr
Slide 31 - © O. Nierstrasz PS — Introduction 1.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 ...
Slide 32 - © O. Nierstrasz PS — Introduction 1.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) ... 10 print "Hello World!" 20 goto 10
Slide 33 - © O. Nierstrasz PS — Introduction 1.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) 'HELLO WORLD'
Slide 34 - © O. Nierstrasz PS — Introduction 1.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 ... OUTPUT = 'Hello World!' END
Slide 35 - © O. Nierstrasz PS — Introduction 1.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 (DEFUN HELLO-WORLD () (PRINT (LIST 'HELLO 'WORLD)))
Slide 36 - © O. Nierstrasz PS — Introduction 1.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
Slide 37 - © O. Nierstrasz PS — Introduction 1.37 “Hello World” in RPG H FSCREEN O F 80 80 CRT C EXCPT OSCREEN E 1 O 12 'HELLO WORLD!'
Slide 38 - © O. Nierstrasz PS — Introduction 1.38 “Hello World” in SQL CREATE TABLE HELLO (HELLO CHAR(12)) UPDATE HELLO SET HELLO = 'HELLO WORLD!' SELECT * FROM HELLO
Slide 39 - © O. Nierstrasz PS — Introduction 1.39 Scripting Languages History Countless “shell languages” and “command languages” for operating systems and configurable applications echo "Hello, World!" on OpenStack show message box put "Hello World!" into message box end OpenStack puts "Hello World " print "Hello, World!\n"; Unix shell (ca. 1971) developed as user shell and scripting tool HyperTalk (1987) was developed at Apple to script HyperCard stacks TCL (1990) developed as embedding language and scripting language for X windows applications (via Tk) Perl (~1990) became de facto web scripting language
Slide 40 - © O. Nierstrasz PS — Introduction 1.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 ...
Slide 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 … © Oscar Nierstrasz Safety Patterns 41
Slide 42 - © O. Nierstrasz PS — Introduction 1.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”?
Slide 43 - © O. Nierstrasz PS — Introduction 1.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?
Slide 44 - © Oscar Nierstrasz ST — Introduction 1.44 Attribution-ShareAlike 3.0 Unported You are free: to Share — to copy, distribute and transmit the work to Remix — to adapt the work Under the following conditions: Attribution. You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under the same, similar or a compatible license. For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page. Any of the above conditions can be waived if you get permission from the copyright holder. Nothing in this license impairs or restricts the author's moral rights. License http://creativecommons.org/licenses/by-sa/3.0/