Modellierung & Programmierung II
Total Page:16
File Type:pdf, Size:1020Kb
Übung - Modellierung & Programmierung II Mathias Goldau, Stefan Koch, Wieland Reich [email protected] [email protected] [email protected] Organisatorisches • Anmeldung: 1. Lernserver: http://informatik.uni-leipzig.de/ifi/studium/lernserver.html 2. Moodle: https://moodle2.uni-leipzig.de/ Einschreibeschlüssel: mup2_0XX, XX 2 f01,02,..,10g • Problem? Neuigkeiten auf Lehrstuhlseite! Immernoch? Übungsleiter kontaktieren! • Übungsserien via Moodle: • 5 Serien je 4 Aufgaben + 1 Zusatzaufgabe • Abgabe per Moodle • Alle Lösungen in ein Archiv zusammenfassen (bspw. ZIP) • Alle Gruppen haben einen gemeinsamen Ausgabe- und Abgabetermin, jeweils zu Beginn und Ende des Übungsblocks • Besprechung im nächsten Seminar soweit als möglich. • Problem mit Kontrolle? Kontrolleur kontaktieren! Immernoch? Übungsleiter kontaktieren! Mathias Goldau, Stefan Koch, Wieland Reich Übung - Modellierung & Programmierung II Organisatorisches • Zulassungsvoraussetzung für Klausur: mindestens 30 Punkte • Konsulationen zu Sprechstunden • Neugikeiten auf Lehrstuhlseite: Lehre > MuP2 Mathias Goldau, Stefan Koch, Wieland Reich Übung - Modellierung & Programmierung II Outline 1 Einleitung Mathias Goldau, Stefan Koch, Wieland Reich Übung - Modellierung & Programmierung II Programmiersprachen • Dienen zur Kommunikation von Menschen mit einem Computer • Synthetisch und exakt • Es gibt mehr als 8500 Programmiersprachen 1 • Historischer Abriss: http://en.wikipedia.org/wiki/History_of_programming_languages • Gibt es die “beste” Programmiersprache? • Eine Sprache ist Turing-Vollständig gdw Sie alle Funktionen berechnen kann welche auch eine Turing-Maschine berechnen kann.2 • Die meisten Programmiersprachen sind Turing-Vollständig 1 Thomas J. (Tim) Bergin. “A history of the history of programming languages”. In: Com. ACM 50.5 (2007), S. 69–74 2 Vgl. Berechenbarkeitstheorie. Mathias Goldau, Stefan Koch, Wieland Reich Übung - Modellierung & Programmierung II 1954 1957 1960 1965 1970 1975 1980 1985 1990 1995 2000 PostScript PostScript level 2 PostScript level 3 1982 1992 september 11, 1996 OO Forth 1987 Forth FIG-Forth Forth-83 ANS Forth ISO Forth 1968 1978 1983 1986 1997 Logo Object Logo Tcl Tcl/Tk Tcl/Tk 8.1 Tcl/Tk 8.2.3 Tcl/Tk 8.3 1968 1986 mid 1988 end 1988 april 1999 dec. 16, 1999 october 22, 2001 FORTRAN I FORTRAN II FORTRAN III FORTRAN IV FORTRAN IV FORTRAN V Fortran 90 ISO FORTRAN (Fortran 66 ANS) (Fortran 77 ANSI) Fortran 95 ISO november 1954 october 1956 1957 end-1958 1962 1991 december 15, 1997 1966 april 1978 A A+ Prolog Prolog II Prolog III 1988 1992 Prolog IV 1970 october 1982 1984 1997 J K Sharp APL 1990 1996 JOSS TELCOMP MUMPS MUMPS (ANSI) MUMPS (FIPS) MUMPS ISO M M ANSI Open M M ISO 1964 1965 1966 september 15, 1977 1986 1992 1994 dec 8, 1995 1999 Modula 3 Delphi dec 11, 1995 Delphi 5 Delphi 6 1988 march 2, 1995 august, 1999 may 1, 2001 APL APL 2 APL96 1960 august 1984 1996 B ABC 1981 1987 Python Python 1.5.2 Python 1.6 Python 2.0 Python 2.1 Python 2.2 1991 april 13, 1999 april 17, 2001 Object Pascal Borland september 5, 2000 october 16, 2000 december 21, 2001 1985 Turbo Pascal B-O Flow-Matic COBOL COBOL 61 COBOL 61 COBOL COBOL 68 ANS COBOL 74 ANSI COBOL 85 ISO/ANSI OO COBOL 1957 1958 1959 1961 Extended 1965 1968 1974 1985 1997 1962 Rex 1.00 Rex 2.00 Rex 3.00 Rexx 3.20 ANSI Rexx Object Rexx may 1979 1980 1982 1984 february 25, 1997 Pascal Pascal AFNOR 1970 1983 Oberon Oberon-2 Active Oberon 1987 1991 Modula-2 ISO 2001 PL/M Modula Modula 2 Modula-2 ISO 1972 1979 june 1, 1996 Generic Extension 1975 Ada Ada 83 ANSI Ada ISO Ada 95 december 19, 1998 january 1983 1995 1979 1987 NetRexx C# PL/I PL/1 ANS NetRexx 1.150 C# 1964 1976 1991 july 23, 1999 (ECMA) Concurrent C june 26, 2000 december 13, 2001 1984 ISO C CPL BCPL B C (K&R) ANSI C ISO C ISO C (C99) C Classic C (C89) (C90) (C95) 1963 july 1967 1969 1971 1978 december 1, 1999 1989 december 15, 1990 april 1, 1996 JScript JScript JOVIAL JOVIAL I JOVIAL II JOVIAL 3 Objective-C may 1996 1959 1960 1961 1965 1983 LiveScript JavaScript 2.0 Cmm JavaScript JavaScript 1.5 (draft 1) CORAL 64 CORAL 66 1992 1995 december 1995 C with Classes C++ ARM C++ C++98 ANSI/ISO february 18, 1999 1964 1966 april 1980 1989 1998 CLU july 1983 ECMAScript ECMAScript ed3 1974 june 1997 december 1999 Simula I Simula 67 Java 2 (v1.3) Java 2 (v1.4) Oak Java 1 Java 2 (v1.2) early access 1964 1967 june 1991 may 23, 1995 december 8, 1998 may 8, 2000 ALGOL W Mesa february 6, 2002 1977 Ruby IAL ALGOL 58 ALGOL 60 1966 ALGOL 68 Cedar Ruby 0.95 Ruby 1.1 alpha 0 Ruby 1.3.2 february 24, 1993 august 13, 1997 Ruby 1.6.1 Ruby 1.6.5 1958 1958 1960 december 1983 december 1995 april 2, 1999 september 27, 2000 september 19, 2001 1968 GOGOL GOGOL III Smalltalk Smalltalk-72 Smalltalk-74 Smalltalk-76 Smalltalk-78 Smalltalk-80 ANSI Smalltalk 1964 1967 1971 1972 1974 1976 1978 1980 may 19, 1998 sed Self Self 4.0 Self 4.1 Sail 1973 Mainsail Eiffel Eiffel 2 Eiffel 3 july 10, 1995 Eiffel 4 Eiffel 4.2 ISE Eiffel 5 august 7, 2001 1968 1975 1986 1988 1993 december 11, 1996 february 6, 1998 2001 ISWIM awk nawk PHP/FI PHP 2.0 PHP 3.0 PHP 4.0 PHP 4.1.0 1966 1978 1985 1995 june 6, 1998 may 22, 2000 KRC Sather 0.1 Sather 1.0 Sather 1.1 nov. 13, 1997 Sather 1.2.1 december 8, 2001 1981 june 1991 mid-1994 september 1995 csh november 4, 1999 october 1978 SASL Perl 2.000 Perl 3.000 Perl 4.000 Perl 5.000 Perl 5.005_50 Perl 5.6.0 Perl 5.7,0 Perl 1.000 july 26, 1998 1976 Miranda december 18, 1987 january 5, 1988 october 18, 1989 march 21, 1991 october 18, 1994 march 28, 2000 september 2, 2000 1982 Objective Caml O’Caml 2 O’Caml 3.00 O’Caml 3.02 O’Caml 3.03 O’Caml 3.04 sh 1996 O’Caml 1.0.7 1969 december 11, 1997 1998 june 2000 july 30, 2001 dec 10, 2001 dec 12, 2001 MS Basic 2.0 BASICA GW-Basic QuickBasic 1.0 QuickBasic 4.5 MS Basic PDS 7.0 MS PDS 7.1 Visual Basic 3.0 Visual Basic 4.0 Visual Basic 5.0 Visual Basic 6.0 VB.NET BASIC 1989 Visual Basic 1.0 Visual Basic 2.0 may 1, 1964 july 1975 1981 1983 1985 1988 1990 may 20, 1991 march 1992 june 93 september 1995 april 1997 june 16, 1998 (Visual Basic 7.0) Clos 2001 Lisp Lisp 1 Lisp 1.5 Common Lisp 1989 Common Lisp ANSI 1958 1959 1962 1984 december 8, 1994 Scheme Scheme MIT Scheme 84 Scheme IEEE Scheme R5RS 1975 1978 1984 1990 1998 Haskell 1.0 Haskell 1.1 Haskell 1.2 Haskell 1.3 Haskell 1.4 Haskell 98 1987 april 1, 1990 march 1992 may 1996 april 1997 february 1999 ML SML SML ‘90 SML ‘97 1973 1984 1990 1997 SL5 Icon Unicon Languages SNOBOL SNOBOL 2 SNOBOL 3 SNOBOL 4 1976 1977 Caml 2-6.1 2001 february 27, 2011 Caml Caml 3.1 1962 april 1964 1965 1967 1987 1991 1993 © Éric Lévénez 1999-2011 <http://www.levenez.com/lang/> 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 PostScript level 3 PostScript level 3 v 3016 v 3017 2003 september 11, 2005 Tcl/Tk 8.4 Tcl/Tk 8.4.1 Tcl/Tk 8.4.2 Tcl/Tk 8.4.3 Tcl/Tk 8.4.4 Tcl/Tk 8.4.5 Tcl/Tk 8.4.6 Tcl/Tk 8.4.7 Tcl/Tk 8.4.8 Tcl/Tk 8.4.9 Tcl/Tk 8.4.11 Tcl/Tk 8.4.12 Tcl/Tk 8.4.13 Tcl/Tk 8.4.14 Tcl/Tk 8.4.15 Tcl/Tk 8.5 Tcl/Tk 8.5.5 Tcl/Tk 8.5.6 Tcl/Tk 8.5.7 Tcl/Tk 8.5.9 september 10, 2002 october 22, 2002 march 3, 2003 may 20, 2003 july 22, 2003 november 24, 2003 march 1, 2004 july 25, 2004 nov. 22, 2004 december 7, 2004 june 28, 2005 december 6, 2005 april 19, 2006 october 19, 2006 may 25, 2007 december 20, 2007 october 15, 2008 january 2009 april 15, 2009 september 8, 2010 Fortran 2000 Fortran 2003 Fortran 2008 (draft) september 2010 september 30, 2002 november 30, 2004 M ISO january 6, 2005 Delphi 7 Delphi 8 Delphi 2005 Delphi 2006 Delphi 2007 Delphi 2009 Delphi 2010 october 30, 2005 march 2007 august 2008 august 2009 august 6, 2002 november 2003 november 2004 Python 3.0a2 Python 3.0.1 Python 3.1 Python 3.2 december 7, 2007 Python 3.0 june 27, 2009 december 3, 2008 february 13, 2009 february 20, 2011 Python 2.2.1 Python 2.2.2 Python 2.3a2 Python 2.2.3 Python 2.3 Python 2.3.1 Python 2.3.2 Python 2.3.3 Python 2.3.4 Python 2.4 Python 2.4.1 Python 2.4.2 Python 2.5 Python 2.5.1 Python 2.6 Python 2.6.1 Python 2.6.2 Python 2.6.3 Python 2.7 Python 2.7.1 april 10, 2002 october 14, 2002 february 19, 2003 may 30, 2003 july 29, 2003 september 23, 2003 october 3, 2003 december 19, 2003 may 27, 2004 november 30, 2004 march 30, 2005 september 28, 2005 september 19, 2006 april 19, 2007 october 1, 2008 december 4, 2008 april 14, 2009 october 2, 2009 july 4, 2010 november 27, 2010 COBOL 2002 ISO/ANSI december 2002 Ada 2006 (draft) Ada 2005 2005 C# C# 2.0 march 9, 2007 (beta) C# 2.0 (ISO) november 2005 march 28, 2003 july 2003 C# 3.0 (beta) C# 3.0 C# 3.5 C# 4.0 september 2005 november 6, 2006 november 19, 2007 april 12, 2010 Objective-C 2.0 Objective-C 2.1 august 7, 2006 august 28, 2009 JavaScript 2.0 Java 2 (v6.0 beta) Java 6 update 2 Java 6 update 7 Java 6 update 11 Java 6 update 14 Java 6 update 24 (draft 4) Java 6 july 11, 2008 december 2004 december 11, 2006 july 5, 2007 december 2, 2008 june 10, 2009 february 15, 2011 april 26, 2002 C++03 ISO/IEC C++0x draft 2003 C++1x draft ECMAScript ed4 (draft) 2008 july 22, 2009 Java 2 (v1.5.0) 2002 Java 2 Java 2 (v5.0 update 3) Java 2 (v5.0 update 12) Java 2 (v5.0 update 16) Java 2 (v5.0 update 17) Java 2 (v5.0 update 18) Java 2 (v1.4.0_01) Java 2 (v1.4.1_03) (beta 1) Java 2 (v5.0) (beta 2) Java 2 (v5.0) Java 2 (v5.0 update 8) Java 2 (v5.0 update 21) Java 2 (v1.4.1) (v1.4.1_02) june 11, 2003 june 28, 2004 september 30, 2004 april 28, 2005 august 11, 2006 may 31, 2007 july 11, 2008 december 2, 2008 march 24, 2009 september 11, 2009 june 4, 2002 september 2002 february 27, 2003 Java 2 (v1.4.2) Java 2 (v1.4.2_01) Java 2 (v1.4.2_02) february