Welcome to the CIS Seminar I Prof Peterson's OF PROGRAMMING LANGUAGES.

Slides:



Advertisements
Similar presentations
History of Object Orientation. What is Object-Orientation? Programming is one of the most complicated and difficult of human activities. It helps a great.
Advertisements

A brief history of programming languages
Object-Oriented Design & Programming Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
A Quick Overview of Languages. FORTRAN Designed in 1955 First release of the compiler in 1957 Algebraic in nature Scientific (numeric not string oriented)
The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani.
Welcome to the CIS Seminar Fall, Taking this for Credit You’ll do a ½ hour presentation (or you and a friend will do a 1 hour presentation). This.
1 CMSC 132: Object-Oriented Programming II Software Development IV Department of Computer Science University of Maryland, College Park.
Programming Introduction November 9 Unit 7. What is Programming? Besides being a huge industry? Programming is the process used to write computer programs.
CSE305 Programming Languages Notes are based primarily on Sebesta text. Quotes are from Sebesta text (7 th edition), unless otherwise noted. Sources other.
Programming languages Prepared by : Jyrald Aquino.
Software Development Unit 6.
1 CS101 Introduction to Computing Lecture 19 Programming Languages.
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.
PROGRAMMING LANGUAGES The Study of Programming Languages.
History of Programming Languages
 Define a problem  Prepare sequence of instructions for the computer to execute  Verify that the program works as expected.
BIT Presentation 6. Contents GENERATIONS OF LANGUAGES COMPILERS AND INTERPRETERS VIRTUAL MACHINES OBJECT-ORIENTED PROGRAMMING SCRIPTING LANGUAGES.
CSE 425: Intro to Programming Languages and their Design A Few Key Ideas No particular language is a prerequisite for this course –However you should be.
PZ01A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01A -- Introduction Programming Language Design and.
History of Object Orientation. What is Object-Orientation? Programming is one of the most complicated and difficult of human activities. It helps a great.
High-Level Programming Languages: C++
MCS 270 Spring 2014 Object-Oriented Software Development.
Computer programming.
The Evolution of the Object Model OOAD. The Evolution of the Object Model software engineering trends observed The shift in focus from programming-in-the-small.
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.
©Xiaoying Gao, Peter Andreae First Java Program COMP 102 #2 2014T2 Xiaoying Sharon Gao Computer Science Victoria University of Wellington.
COMPUTER PROGRAMMING I SUMMER 2011 Programming Languages.
Course Overview. What are Computers? From Outside –CPU box, Monitor, Keyboard, mouse and Printers From inside –ICs, Chipsets, Hard Disks, PCB cards, Drives,
CS101 Introduction to Computing Lecture Programming Languages.
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
First Java Program COMP 102 #2 2015T2 Xiaoying Sharon Gao Computer Science Victoria University of Wellington.
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
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
CSC425 - Introduction To Computer Programming 1. 2 Generation Of Programming Languages A set of rules that telling a computer what to do. There are over.
National Diploma Unit 4 Introduction to Software Development Introduction to Programming Languages.
Chapter 2: A Brief History Object- Oriented Programming Presentation slides for Object-Oriented Programming by Yahya Garout KFUPM Information & Computer.
C Language: Introduction
Programming Language 1. Programming language A programming language is a machine-readable artificial language designed to express computations that can.
Engr. Isabelo Jun D. Paat, ME-CoE Lecturer 1 Programming Languages.
 Computer Languages Computer Languages  Machine Language Machine Language  Assembly Language Assembly Language  High Level Language High Level Language.
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
Evolution of the Major Programming Languages Chapter 2: Evolution of the Major Programming Languages Lectures # 5.
Programming Language Theory 2014, 1 Chapter 1 :: Introduction Origin : Michael L. Scott School of Computer & Information Engineering,
小型系統 心情 vs. 古典樂 心情 vs. 古典樂 浪漫求籤系統 美食導航系統 季潔亭雅鈺熒岱芸 美食導航系統 楊氏音樂模擬大會考人瑋 若維 芷萱 伽倩 楊氏音樂模擬大會考 麥當勞熱量計算系統 火星文困擾你嗎 ? 火星文困擾你嗎 ? 歌詞知多少 - 挑戰你的腦容量英琪 日馨 青雪 鈺娟.
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
Chapter 1. Introduction.
The language focusses on ease of use
Concepts of Programming Languages
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.
Introduction to programming languages, Algorithms & flowcharts
Programming Language Design Concepts
CS101 Introduction to Computing Lecture 19 Programming Languages
Programming Language History and Evolution
Introduction to programming languages, Algorithms & flowcharts
Ada – 1983 History’s largest design effort
Programming Languages 2nd edition Tucker and Noonan
High Level Programming Languages
Von Neumann Architecture
Cobol Design goals: Problems
Lecture 8 Programming Paradigm & Languages. Programming Languages The process of telling the computer what to do Also known as coding.
School of Computer & Information Engineering,
Presentation transcript:

Welcome to the CIS Seminar I Prof Peterson's OF PROGRAMMING LANGUAGES

Scheduling Sept 22: Rich Osborne Sept 29: Andy Keck (Mathematica) Oct 6: Tim (Ruby) Oct 19: Alex Chiang (HP) Oct 26: Rory (Prolog) Nov 3: Randy Spydell

Simula Simula expanded on Algol to add objects, classes, methods, GC. It is the ancestor of object oriented programming Ole-Johan Dahl and Kristen Nygaard External Class Geometry; Geometry Begin ! Subclasses declared in the prefixed block: ; Point Class Color_Point(C); Character C; Begin... End; Rectangle Class Square; Begin... End; ! Variables declared in the prefixed block: ; Ref(Color_Point) A1; Ref(Point) C, D; Ref(Circle) K; Ref(Line) E, F; Ref(Rectangle) R1; Ref(Square) S1; ! Block body: ; C :- New Point(5,6); D :- New Point(20,30); A1 :- New Color_Point(3, 4, 'G'); K :- New Circle(10, C); E :- New Line(C, D); F :- X; K.Shift (1,1); R1 :- New Rectangle("Rec_R1", 5, 4); S1 :- New Square("Square_S1", 4, 6); S1.Show; End of prefixed block;

Simula * Simula was designed for discrete event based simulation – something that O-O does very well! * It took a long time for O-O ideas to hit the mainstream (C++)

Basic Two guys at Dartmouth (John Kemeny and Thomas Kurtz) wanted to create a language to teach computing that was simple and oriented towards time-sharing INPUT "What is your name: "; U$ 20 PRINT "Hello "; U$ 30 REM 40 INPUT "How many stars do you want: "; N 50 S$ = "" 60 FOR I = 1 TO N 70 S$ = S$ + "*" 80 NEXT I 90 PRINT S$ 100 REM 110 INPUT "Do you want more stars? "; A$ 120 IF LEN(A$) = 0 THEN GOTO A$ = LEFT$(A$, 1) 140 IF (A$ = "Y") OR (A$ = "y") THEN GOTO PRINT "Goodbye "; 160 FOR I = 1 TO PRINT U$; " "; 180 NEXT I 190 PRINT

About Basic * Shows how education influences practice * Success was in the implementation rather than the design * Kemeny was a student of Church * Could be implemented on tiny machines * Bill Gates! * Led to a long line of "thrown together scripting languages" like Perl (ugh!)

PL/I PL/I was the "anti-Basic": a huge language designed to subsume all others. It was a commercial flop Test: procedure options(main); declare My_String char(20) varying initialize('Hello, world!'); put skip list(My_String); end Test;

Lessons of PL/I * Complexity inhibits implementation – it's tough to understand how hard a language is to implement while writing a standard * Vendors can't tell users what language to use * Being a little better is not good enough

C C is: * A language that addresses low level concerns. If the machine can do it, C can do it. And vice versa. * Considered a portable assembler – compilation should be easy to understand * Way more successful than intended * Did "one thing" very well * Make Unix what it is today – previous OS efforts were in assembly language and not portable 1972 Previous language was "B"

Prolog * Logic turned into a programming language * Wildly different computational engine * Does a limited set of things extremely well * Once thought to be the language of the future – now just a specialty language * Illustrates some really interesting semantic issues * Rory will show us how this works soon! 1972

Ada * Moral successor to PL/I although it was more for embedded systems * Pushed by the department of defense (the "ADA Mandate") * Widely hated / ignored by programmers, never adopted by academia * Never widely adopted by industry – abandoned for COTS technologies * Still alive – widely used in the aircraft industry 1980

C++ C++ was created by Bjarne Stroustrup in an effort to merge the elegance of Simula with the performance of C C++ caught on in a big way and is still very much alive C++ has evolved into an extremely complex language that has managed to retain performance guarantees 1985

ML * The predecessor of Haskell * Introduced the Hindley-Milner type system * Influenced Java generics * Did "one thing" very well * An "academic" language rather than an industrial one * Still going strong

Java Java came out of nowhere! During the Internet boom, Sun (James Gosling) decided to simplify C++ and focus on portability (via a "virtual machine"). Java was hyped as the "Language of the Internet" but that didn't really pan out. Widely adopted as an instructional language

Other Notable Languages * Snobol / Icon (generators) * Smalltalk (O-O successor to Simula) * Common Lisp / Scheme (evolved Lisps) * Python (pretty looking Lisp) * C# (MS answer to Java) * PHP (Web language of choice) * Haskell (best language in the universe)

Languages Are Born Languages form in interesting ways: Committees of experts creating a language to replace a group of similar languages or address a perceived need Lone geniuses (Academics) demonstrating a new theory Hackers trying to solve a specific problem

Evolution Languages are never created in a vacuum – designers are always aware of past languages. It's hard to trace PL genealogy sometimes. Once a language "catches on" there is always evolutionary pressure to keep it competitive with other languages. This is an issue that the language community has to deal with

Ecology Every programming language inhabits an identifiable "ecological niche" that enables it to survive. Some of the niches: * Corporate investment * Academic / research * Hacker * Performance-based * Specific problem domains * Cults

On From Here We'll slow down and look at languages in depth. The big questions: * What are the basic "computational models" embodied in programming languages? * How can we dissect programming languages into separable "feature areas"? * What makes a language good for a particular task? * What are the "notable" languages – ones that do some task particularly well?