• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/41

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

41 Cards in this Set

  • Front
  • Back

Zuse's Plankalkül

Designed 1945, published 1972


Never implemented


Advanced data structures (floating point, arrays, records)


Invariants

What's wrong with machine codes?

Poor readability


Poor modifiability


Expression coding was tedious


Machine deficiencies (no indexing or floating point)

Pseudocodes: Short code

Mauchly - 1949


BINAC computers


Expressions were coded, left to right

Pseudocodes: Speedcoding

Backus - 1954


IBM 701


Slow

Pseudocodes: Related Systems

- UNIVAC Compiling System


Grace Hopper


Pseudocodes to machine code


- David J Wheeler


Blocks of relocatable addresses - for absolute addressing

Fortran

Fotran 0: 1954 - not implemented


Fortran 1: 1957


Idea of compiled programming languages






Environment of development: Fortran

Computers were small and unreliableApplications were scientificNo prog methodology or toolsMachine efficiency: concern

Design Process: Fortran

No need for dynamic storage


Need good array handling and counting loops


No string handling, decimal arithmetic, or powerful i/o

Fortran II

1958


Fixed bugs


Independent compilation

Fortran IV

1960-62


Explicit type declarations


Logical selection statement


Subprogram names as parameters


ANSI standard 1966

Fortran 77

New standard in 1978


Character string


Logical loop (if then else)

Fortran 90

Modules


Dynamic arrays


Pointers


Recursion


Case statement


Parameter type checking

Latest versions

Fortran 95 - minor additions and deletions


Fortran 2003

Fortran Evaluation

Highly optimizing compilers (before 90)


Dramatically changed the way computers are used


Lingua franca of the computing world

Functional Programming: LISP

LISt Processing language - MIT, McCarthy


Process data in lists (arrays)


Symbolic computation (numberic)


Only 2 data types: Atoms and lists


Syntax based on lambda calculus

LISP Evaluation

Pioneered functional programming


- no need for variables or assignments


Dominant language for AI


COMMON LISP & Scheme - dialects


ML, Miranda and Haskell - related

Scheme

MIT - mid 1970s


Small


Excessive use of static scoping


Functions: first-class entities


Simple Syntax + small size - for educational applications

COMMON LISP

Combination of features of dialects of LISP


Large, complex

1st Step towards sophistication: ALGOL 60

Environment of development


Languages were being developed for specific machines


No portable language, machine dependent


No universal language for algos



ALGOL 60 - result to design a universal language

ALGOL 58

ACM and GAMM - 4 days meet


Concept of type was formalized


No I/O - magising machine dependent


Support was dropped 1959 IBM

ALGOL 60

Modified ALGOL 58. 6 day meet


No I/O and string handling

ALGOL 60 Evaluation

+


Standard way to publish algos for 20++ years


Imperative languages are based on it


First machine independent language


First language whose Syntax was formally defined (BNF)



-


Never widely used, US


Lack of I/O, too flexible, hard to implement, lack of support from IBM, formal Syntax descriptuon

Computerizing Business Records: COBOL (Common business-oriented language)

Based on FLOW-MATIC


First macro facility in a high-level language


Hierarchical data structures (records)


First language required by Dept of Defense


Still the most widely used business applications language

Timesharing: BASIC

Kemeny & Kurtz - Dartmouth


Visual BASIC


First widely used language with timesharing

PL/I

5 months: 3 x 3, IBM and SHARE


New Prog Lang -> PL/1


Extension of Fortran IV


First unit-level concurrency, exception handling, pointer data type, array cross sections


Many new features poor design


Too large and complex

2 Early Dynamic Languages

APL (A Programming Language)


Hardware description language - IBM - Ken Iverson 1960


Highly expressive, program difficult to read



SNOBOL (String oriented symbolic language)


Powerful for string pattern matching


String manipulation lang - Bell Labs


No longer used for writing editors

Data Abstraction: SIMULA 67 (simulation language)

System simulation


Based ALGOL 60 and SIMULA 1


Primary contributions:


Coroutines - subprogram


Classes, objects and inheritance

Orthogonal Design: ALGOL 68

User-defined data structures


Reference types


Dynamic arrays (flex arrays)


Less usage than ALGOL 60


Strong influence on Pascal, C, Ada

Pascal

1971, Wirth (ALGOL 68 mem)


Teaching structural programming


Small simple


Mid 1970s - late 1990s - most widely used for teaching programming

C

1972. Bell Labs - Dennis Richie


Evolved from BCLP, B, ALGOL 68


Powerful set of operators, poor type checking


Spread through UNIX


Many areas of apllivation

Prolog (programming logic)

Based on formal logic


Non-procedural


Intelligent database system uses inferencing process


Highly inefficient, small application areas

History's largest design effort: Ada

Hundreds of people, much money, 8 years


Augusta Ada Byron - first programmer


Competitive design


Included everything


First compilers were difficult

Ada 95

1988


Support for OOP type derivation


Don't need u bye - DoD


I'm more popular than u - C++

OOP: Smalltalk

First full implementation of OOP


Pioneered GUI design


Promoted OOP

C++

Evolved from C and SIMULA 67


Provides exception handling


OOP and Imperative


ANSI approved in November 1997

OOP: Eiffel and Delphi

Eiffel 1992


Smaller and simpler C++


Lol I'm more popular - C++


Delphi


Pascal plus support OOP


More elegant and safer than C++

Java

@ Sun in early 1990s


Based on C++


Supports only OOP


Eliminated unsafe features


Widely used for web programming


Use increased faster than any previous language

Scripting Languages for the Web

Perl


JavaScript (similar Syntax lang to Java)


PHP - hypertext preprocessor


Python


Lua


Ruby - Japan (Yukihito Matsumoto), replacement for Perl and Python

C#

.NET dev platform 200


Based on C++, Java and Delphi


Component-based software dev


Common Type System (CTS) -common class library

Markup/Programming Hybrid Languages

XSLT (eXtensible Stylesheet Language Transformation) - transforms XML docs for display


* XML (eXtensible Markup Language)



JSP (Java Server Pages) - collection of tech to support dynamic web docu


- servlet: Java program that resides on a web server

Summary

Dev, dev environment, and evaluation of a number of important prog lang


Perspective into current issues in language design