Documente Academic
Documente Profesional
Documente Cultură
7/12/2007 1 7/12/2007 2
7/12/2007 3 7/12/2007 4
7/12/2007 5 7/12/2007 6
1
7/12/2007
Invented by Mauchly, and implemented for the Developed during the 50’s
BINAC computer. Mapped human understandable code to
A “Hand Compiled” Language machine code – usually 1-to-1
correspondence.
p
Architecture dependant.
X3 = (X1+Y1)/X1*Y1 =>
Examples:
X3 03 09 X1 07 Y1 02 04 X1 =>
MIPS
07Y10204X1Y1.
Sun SPARC
0000X30309X1
PDP 11
7/12/2007 11 7/12/2007 12
2
7/12/2007
7/12/2007 13 7/12/2007 14
7/12/2007 15 7/12/2007 16
7/12/2007 17 7/12/2007 18
3
7/12/2007
7/12/2007 19 7/12/2007 20
Was widely used as a tutorial language for 1st With the development of languages, several
semester students. principles guided the needs:
Totally free-form – Application vs. system programming
No reserved keywords. Imperative languages (OOP or non-OOP), functional
languages, logic.
Semantics: scopes, recursion, encapsulation,
modularity, platform-independence
Memory abstraction
Type checking
Compiled vs. interpreted.
7/12/2007 23 7/12/2007 24
4
7/12/2007
A basic part of Turing- There are many variants, some are newer.
completeness (can be Call-by-Value – most common, used in C and
realized with loops) scheme, for example. The expression is
Had to submit to the evaluated and then ppassed as argument.
g
invention of the function call Call-by-reference – using “L-Value”. Used by
stack. most modern languages, and some middle
Early languages, like ones (e.g. ML, and to some extent FORTRAN).
FORTRAN on the HP 210
computer did not support
recursion.
7/12/2007 25 7/12/2007 26
7/12/2007 27 7/12/2007 28
7/12/2007 29 7/12/2007 30
5
7/12/2007
7/12/2007 31 7/12/2007 32
( x, n) ∈ F ⇒ ( x ⋅ (n + 1), n + 1) ∈ F
7/12/2007 33 7/12/2007 34
35/57
Itay Maman
36/57
6
7/12/2007
37/57 38/57
39/57 40/57
41/57 42/57
7
7/12/2007
43/57 44/57
fun step x y 0 = x
| step x y n = step y (x+y) (n-1);
45/57 46/57
Designer: Jean Ichbiah, S. Tucker Taft function fib(n : integer) return integer is
Paradigm: Imperative f : integer := 0;
Type system: static, strong s : integer := 1;
tmp : integer;
Based on: Algol 68, Pascal
begin
for i in 1..n loop
Developed for the US Department of Defence tmp := f + s;
Requirements f :=
: s;
Modular, safe, high level of abstraction
s := tmp;
end loop;
High maintainability return f;
Should replace ad-hoc hardware-dependent languages end fib;
à Frequent in embedded systems
47/57 48/57
8
7/12/2007
49/57 50/57
51/57 52/57
53/57 54/57
9
7/12/2007
Designer: Simon Peyton-Jones, Paul Hudak, Philip Wadler module Main where
Paradigm: Functional import System.Environment
Type system: static, strong, inferred
Based on: ML, Miranda fib = 1 : 1 : zipWith (+) fib (tail fib)
main = do
Philosophy: Purely functional args <- getArgs
No side effects (unless you ask nicely) print (fib !! (read(args!!0)-1))
(read(args!!0) 1))
2D grammar
Lazy evaluation: fib is recursive but has no if's
do construct for sequential execution
Type inference
55/57 56/57
57/57 58/57
Interpreters:
e p e e s: Thee Resurrection
esu ec o
59/57 60/57
10
7/12/2007
1987- Perl
1990- Python
1991- Visual Basic
1995- Ruby
e p e e s: Thee Resurrection
Interpreters: esu ec o 1995- Javascript
1995
Coming soon to an IDE near you 1997- PHP
61/57 62/57
63/57 64/57
11
7/12/2007
1976-VI 1976-Emacs
67/57 68/57
69/57 70/57
1991-XEmacs 1994-DDD
71/57 72/57
12
7/12/2007
73/57 74/57
2007-Eclipse 3.2.2
.
.
.
</IDEs.abridged>
<conclusions>
.
.
.
75/57 76/57
77/57 78/57
13
7/12/2007
No absolute answer
Functional
Too many contradicting factors
Imperative
Too many players (languages)
Very easy to produce a new language
Extremely difficult to measure the market
A 71-years old debate Still, here are a few attempts...
81/57 82/57
Source:
83/57 http://www.cs.berkeley.edu/~flab/languages.html Source:
84/57 http://radar.oreilly.com/archives/2007/03/programming_lan.html
14
7/12/2007
Source:
85/57 http://www.tiobe.com/index.htm?tiobe_index Source:
86/57 April 2005 data of http://www.tiobe.com
87/57 88/57
.
http://www.juixe.com/techknow/index.php/2006/06/15/mixins-
in-ruby .
http://www.scriptol.org/fibonacci-any-programming-
language.html .
http://en.wikipedia.org/wiki/History_of_programming_language
s </conclusions>
http://www.whitehouse.gov/history/presidents/chronological.ht
http://www whitehouse gov/history/presidents/chronological ht </lecture>
ml
http://www.dcs.ed.ac.uk/home/stg/NOTES/node59.html
89/57 90/57
15
7/12/2007
91/57
16