Programming Languages What is a programming language? –systematic notation by which we describe computational processes to others –notation for description.

Slides:



Advertisements
Similar presentations
Presentation II History of Computers By Teacher Julio Cesar Peñaloza Castañeda.
Advertisements

Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
A brief history of programming languages
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
Overview of Programming Paradigms
1 ) Definition 2) Note on structured and modular programming, and information hiding 3) Example imperative languages 4) Features of imperative languages.
The Analytical Engine Module 6 Program Translation.
Reasons to study concepts of PL
Computability to Practical Computing - and - How to Talk to Machines.
6/27/2015G. Levine1 PROGRAMMING LANGUAGES Text: Programming Languages, Design and Implementation Pratt and Zelkowitz 4 th ed. Prentice-Hall.
Summer 02-03Programming Language Concepts1 Programming Language Concepts (CS 360) Lecture 1: Overview, Grammars, and Little Languages Jeremy R. Johnson.
ISBN Chapter 2 Evolution of the Major Programming Languages.
Fortran Background – History and Motivation Shirley Moore CPS5401 Fall September 3,
Programming languages Prepared by : Jyrald Aquino.
Introduction to Programming (in C++) Introduction Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer Science, UPC.
Programming Language Concepts
1 Programming Languages Marjan Sirjani 2 1- The Study of Programming Languages The purpose of language is simply that it must convey meaning. (Confucius)
CS 415: Programming Languages Chapter 1 Aaron Bloomfield Fall 2005.
314450: PROGRAMMING PARADIGMS Teaching scheme: Examination Scheme: Lectures: 3 Hours/Week Theory: 100 Marks OBJECTIVE: To understand the basic building.
PROGRAMMING LANGUAGES The Study of Programming Languages.
History of Programming Languages
BIT Presentation 6. Contents GENERATIONS OF LANGUAGES COMPILERS AND INTERPRETERS VIRTUAL MACHINES OBJECT-ORIENTED PROGRAMMING SCRIPTING LANGUAGES.
Introduction to Computer Programming itc-314
Chapter 17 Programming Tools The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition, Irv Englander.
PZ01A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01A -- Introduction Programming Language Design and.
G Programming Languages T he main themes of programming language design and use: –Model of computation –Expressiveness types and their operations.
(1.1) COEN 171 Programming Languages Winter 2000 Ron Danielson.
High level & Low level language High level programming languages are more structured, are closer to spoken language and are more intuitive than low level.
CS 363 Comparative Programming Languages
COMPUTER PROGRAMS AND LANGUAGES Chapter 4. Developing a computer program Programs are a set (series) of instructions Programmers determine The instructions.
ISBN Chapter 2 Evolution of the Major Programming Languages.
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
CS 403 Programming Language Theory Class 2 - August 29, 2000.
1 Programming Languages Marjan Sirjani Course web site:
1 Programming Language History and Evolution In Text: Chapter 2.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
Professor Dolores Zage n Computer Science Department n n RB 443 n (765) n dmz/
Fortran Fortran – Formula Translation –Developed by John Backus (IBM) in the mid 1950s. –It was a team effort and the design goal was to produce a translation.
Programming Domains 1.Scientific Applications Typically, scientific applications have simple data structures but require large numbers of floating-point.
Engr. Isabelo Jun D. Paat, ME-CoE Lecturer 1 Programming Languages.
FORTRAN History. FORTRAN - Interesting Facts n FORTRAN is the oldest Language actively in use today. n FORTRAN is still used for new software development.
Allyson M. Hoss, January 14, 2008 CSC 7101 Programming Language Structures Spring 2008 Louisiana State University.
1-1 1 Introduction  Programming linguistics: concepts and paradigms syntax, semantics, and pragmatics language processors.  Historical development of.
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 190 Programming Language Paradigms Fall 2014
Programming Language Theory 2014, 1 Chapter 1 :: Introduction Origin : Michael L. Scott School of Computer & Information Engineering,
Programming Language Paradigms ITSK2314 Lecture 3.
a medium allowing humans and computers to communicate an abstraction of the real world a notation for expressing algorithms the set of all syntactically.
History. Development Driven by Function Functions of a Programming Language –To describe computation for use by computers –To describe computation and.
First appeared Features Popular uses Basic This language emphasises on ease of use, allowing general purpose programming to those with a small amount of.
Programming Language History and Evolution
The language focusses on ease of use
Zuse’s Plankalkül – 1945 Never implemented Problems Zuse Solved
Introduction to programming languages, Algorithms & flowcharts
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
Why study programming languages?
Basic 1964 PC general purpose Imperative Small Easy to use.
Introduction to programming languages, Algorithms & flowcharts
CSCI-235 Micro-Computer Applications
Programming Language History and Evolution
Introduction to programming languages, Algorithms & flowcharts
CSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING
Ada – 1983 History’s largest design effort
Programming Language Design
Programming Languages 2nd edition Tucker and Noonan
Introduction to Computer Programming
Von Neumann Architecture
Principles of Programming Languages
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
Programming Languages, Preliminaries, History & Evolution
Presentation transcript:

Programming Languages What is a programming language? –systematic notation by which we describe computational processes to others –notation for description of algorithms and data structures computational process – set of steps solve a problem computer’s built-in abilities: PRIMITIVE/ constitute Machine Language –arithmetic and logical operations –I/O –Some “control” functions High-level programming languages – less primitive notations/ need system software to translate 1

Why study programming languages? Linguistic theory states: structure of language defines boundaries of thought ?TRUE? Language can facilitate or impede certain modes of thought A given programming language can influence class of solutions 2

Benefits of studying languages? Computer Scientists –Improve ability to develop algorithms –Improve existing use of language –Increase vocabulary of programming constructs –Allow choice of language –Easier to learn new language –Easier to design new language (user interfaces) Language Designers/Implementers –insights from motivation of language facilities to make implementation tradeoffs 3

Benefits of studying languages? Hardware Architects –gain insight into ways machines may better support languages –design a semantically coherent machine w/ complete sets of data types and operations System designers –apply to human interfaces –JCL’s, DB systems, editors, text formatters, debuggers have many characteristics of a programming language –Necessary for file systems, linkage editors to interface with programming languages Software Managers –choice of language –choice of extension of language or new language and know costs 4

Early History B.C. earliest know algorithm on clay tablets in Babylon (near Baghdad, Iraq) produced mathematical tables solved algebraic equations using an “algorithm” at end put “this is the procedure” did not have conditional tests (no 0 or negative numbers) did have repetition 5

Early History 300 B.C. Euclid Greece – algorithm for computing GCD of 2 integers (zero still not recognized, so special cases) 19 th, early 20 th century –Charles Babbage English –2 machines: Difference Engine: finite differences, repeated additions, math tables Analytical Engine: many principles of modern computer, any calculation Store = main memory Mill=ALU barrel = control unit TABLE 1.2 on Handout – Influences on programming language development 6

7

8

Early Computer programming languages by category Numerical WWII 30/40s “electronic calculators” to solve numerical problems 50s symbolic notations/compilation necessary Backus’ team – developed FORTRAN –numerical calculations –full-fledged programming language (control structs, cond, I/O statements) –to compete w/ assembly made very efficient! –Extremely successful –1958 – Fortran II Fortran IV Fortran 77, 90 backwards compatible 9

Early Computer programming languages by category Success of FORTRAN -> fear in Europe of domination of IBM –leader Naur of (German Math Society) –joined by ACM despite fear –ALGOL (Algorithmic Language) 58, 60 –Standard in “academia” –GOALS (4) Close to standard math Useful to describe algorithm Compilable Machine independent (no I/O) –Not successful –MAJOR IMPACT – syntactic notation BNF 10

Early Computer programming languages by category AI Languages 50s –IPL – Info Processing language by Rand Corp (widely known, but use limited) –John McCarthy of MIT designed LISP (List Processing) for IBM 704 => Scheme and Common Lisp list processing FUNCTIONAL Language usual problems: searching text processing => SNOBOL –Prolog – special purpose based on math logic 11

Early Computer programming languages by category Systems Languages – Assembly language – CPL, BCPL – not widespread – C – Unix written mostly in C in 1970s 12

ROLE of Programming Languages Early: efficient design computers and time expensive vs programmers minor cost 60s: machines less expensive, programmers more => need portability, maintainability, ease of use programming languages evolving COBOL dropping => application generators APL, PL/1, SNOBOL – practically disappeared Pascal – past prime, but continued in Ada Ada – ground lost to C++ and Java Delphi and C++ Builder Fortran revised (for supercomputers )

Influences capabilities of computers applications: now games, PCs programming methods: environment changes, good methods known now implementation methods -> effect choices of features theory: deepened understanding of strengths and weaknesses standards 14

Historical Development of Java Other references: Java Java Java Java Java Java 1991 Scheme 1984 Smalltalk C Java SE Java SE Java SE 8 Mar 2014 Lisp

Historical Languages C - general-purpose, imperative computer programming language general-purposeimperativeprogramming language C++- Based on C, but has imperative, object- oriented and generic programming featureimperativeobject- orientedgeneric Smalltalk - object-oriented, dynamically typed, reflective programming language. It was designed and created in part for educational use, more so for constructionist learningobject-orienteddynamically typedreflectiveprogramming languageeducationalconstructionist learning Lisp - practical mathematical notation for computer programs, influenced by Church's lambda calculus. It quickly became the favored programming language for artificial intelligence (AI) researchChurchlambda calculusartificial intelligence Scheme - a minimalist, multi-paradigm dialect of Lisp 16

Historical Development of Python Reference: 17 Python 1991 Pascal AFNOR 1983 Pascal 1970 ABC 1987 Modula B 1981 ANSI C 1989 Modula BCPL 1967 Modula 1975 C 1971 C (K&R) 1978 Python Ruby 1993 Python B 1969

Historical Languages BCPL - Originally intended for writing compilers for other languagescompilers B - recursive, non-numeric, machine independent applications, such as system and language software C - general-purpose, imperative computer programming language general-purposeimperativeprogramming language Pascal - small and efficient language intended to encourage good programming practices using structured programming and data structuring.structured programmingdata structuring Modula - main innovation of Modula over Pascal is a module system, used for grouping sets of related declarations into program unitsmodule system 18

Historical Development of Perl Other references: Pearl Perl Pearl 5.005_ Perl Perl Ruby 1993 Perl Perl Perl awk 1978 Smalltalk sh nawk 1985 C sh 1971 C 1971 Perl Perl 5.18 May 2013 Haskell