Programspråk A+, A++, A# .NET, A-0, ABAP, ABC, ABC ALGOL, ABLE, ABSET, ABSYS, ACC, Accent, ACT-III, Action!, ACS, ActionScript, Actor, Ada, ADMINS, ADS/Online, AdvPL, Aleph, AIMMS, Alan, Aldor, Alef, Algae, ALGO, ALGOL, Alice, Alphard, AmigaE, AMOS, AMPL, ApeScript, APL, AppleScript, Apply, AREXX, Argos, ARS++, AspectJ, Assembly, ATLAS, Atlas Autocode, Aubit-4GL, Autocoder, AutoIt, AutoLISP, Averest, AWK, Axiom, Axiom-XL, B, BACI, BASI, bc, bcompile, BCPL, BeanShell, BETA, Bigwig, Bistro, BLISS, Blitz Basic, Blue, Boo, Boxx, BPEL, Brainfuck, BUGSYS, BuildProfessional, C, C–, C-script, C++, C#, Caml, Cayenne, CeeBot, Cecil, Cesil, Cg, Chapel, CHAIN, Charity, Chey, CHILL, Chrome, ChucK, Cilk, Clarion, Clipper, CLIPS, CLU, CMS-2, COBOL, CODE, CodeSimian, ColdFusion, COMAL, Common Lisp, Component Pascal, COMIT, Concurrent Clean, CORAL66, Corn, CorVision, COWSEL, CPL, CSP, Csound, Cue, Curl, Curry, Cyclone, D, Databus, Dark Basic, Dataflex, Datalog, dBASE, dc, Deesel, DCL, Delphi, Dialog Manager, DIBOL, Dream Maker, Dylan, E, Ease, Easy PL/I, eDeveloper, Eiffel, Elan, elastiC, Elf, Epigram, Erlang, Esterel, Euclid, Euphoria, Euler, EXEC . . . Föreläsning 8 — Programspråk och GUI Programspråk Historik: Fortran, Algol, Simula, C++ Grafiska användargränssnitt, GUI (Graphical User Interfaces) Xerox Alto, Star, Apple Lisa, Macintosh, Windows Per Holm ([email protected]) Programspråk, GUI 2014/15 156 / 177 Utveckling? Per Holm ([email protected]) Programspråk, GUI 2014/15 157 / 177 Olika slags programspråk Basic VisualBasic Programspråk har: Simula Smalltalk Algol 60 C C++ Pascal Ada Fortran I 1960 Per Holm ([email protected]) 1970 1980 Programspråk, GUI C# Typsystem: typat eller otypat språk. Om språket är typat: statisk eller dynamisk typning. Java 1990 Paradigm: procedurellt språk (C), objektorienterat språk (Java, C++), funktionsspråk (Haskell, LISP), logikspråk (Prolog), skriptspråk (Python), . . . 2000 2014/15 158 / 177 Per Holm ([email protected]) Programspråk, GUI 2014/15 159 / 177 Fortran 10 Algol begin real procedure f(k); integer k; begin real x; x := k * k; f := x * sin(x - 1); end; SUM = 0 DO 10 I = 1,10 TERM = F(I) * F(I - 1) SUM = SUM + TERM CONTINUE WRITE(*,*) ’Summa: ’, SUM STOP END integer i; real sum, term; FUNCTION F(K) X = K * K F = X * SIN(X - 1) RETURN END end Per Holm ([email protected]) Programspråk, GUI 2014/15 160 / 177 Simula Per Holm ([email protected]) Programspråk, GUI 2014/15 161 / 177 2014/15 163 / 177 C++, klass begin class BankAccount(accntNbr); integer accntNbr; begin integer balance; class BankAccount { private: int accntNbr; int balance; public: BankAccount(int nbr); int getBalance() const; void deposit(int amount); }; integer procedure getBalance; begin getBalance := balance; end; procedure deposit(amount); integer amount; begin balance := balance + amount; end; end; end sum := 0; for i := 1 step 1 until 10 do begin term := f(i) * f(i - 1); sum := sum + term; end; Outtext("Summa: "); Outfix(sum, 2, 5); Outimage; BankAccount::BankAccount(int nbr) : accntNbr(nbr), balance(0) {} int BankAccount::getBalance() const { return balance; } ref(BankAccount) myAccount; myAccount :- new BankAccount(12345); myAccount.deposit(1500); Per Holm ([email protected]) Programspråk, GUI void BankAccount::deposit(int amount) { balance += amount; } 2014/15 162 / 177 Per Holm ([email protected]) Programspråk, GUI C++, huvudprogram Grafiska användargränssnitt Windows 1.0 int main() { BankAccount myAccount(12345); } 1970 myAccount.deposit(1500); Java har hämtat syntaxen (”formen” hos programmen) från C++. Man ska inte tro att man förstår ett C++-program bara för att det liknar ett Javaprogram. Per Holm ([email protected]) Programspråk, GUI 2014/15 164 / 177 Xerox Alto, dator Per Holm ([email protected]) 1980 Xerox PARC Alto: mus, grafisk skärm, fönster, ikoner, menyer, WYSIWYG, LAN Per Holm ([email protected]) Windows 95 1990 Apple Lisa Xerox Star: skrivbordsmetafor, överlappande fönster Windows 3.0 2000 X11 Apple Macintosh Windows 8 Windows XP Windows 7 2010 MATE Aqua (OS X Cheetah) OS X Yosemite Programspråk, GUI 2014/15 165 / 177 Programspråk, GUI 2014/15 167 / 177 Xerox Alto, skärm Programspråk, GUI 2014/15 166 / 177 Per Holm ([email protected]) Xerox Star Per Holm ([email protected]) Apple Lisa, dator Programspråk, GUI 2014/15 168 / 177 Apple Lisa, skärm Per Holm ([email protected]) Per Holm ([email protected]) Programspråk, GUI 2014/15 169 / 177 Programspråk, GUI 2014/15 171 / 177 Macintosh 1984, dator Programspråk, GUI 2014/15 170 / 177 Per Holm ([email protected]) Macintosh 1984, skärm Per Holm ([email protected]) Windows 1.0 Programspråk, GUI 2014/15 172 / 177 Windows 3.1 Per Holm ([email protected]) Per Holm ([email protected]) Programspråk, GUI 2014/15 173 / 177 Programspråk, GUI 2014/15 175 / 177 Windows XP Programspråk, GUI 2014/15 174 / 177 Per Holm ([email protected]) Mac OS X Per Holm ([email protected]) Windows Vista Programspråk, GUI 2014/15 176 / 177 Per Holm ([email protected]) Programspråk, GUI 2014/15 177 / 177