6
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 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, Eiel, Elan, elastiC, Elf, Epigram, Erlang, Esterel, Euclid, Euphoria, Euler, EXEC . . . Per Holm ([email protected]) Programspråk, GUI 2014/15 157 / 177 Utveckling? Basic VisualBasic Algol 60 Fortran I Simula Pascal C Smalltalk C++ Ada Java C# 1960 1970 1980 1990 2000 Per Holm ([email protected]) Programspråk, GUI 2014/15 158 / 177 Olika slags programspråk Programspråk har: Paradigm: procedurellt språk (C), objektorienterat språk (Java, C++), funktionsspråk (Haskell, LISP), logikspråk (Prolog), skriptspråk (Python), . . . Typsystem: typat eller otypat språk. Om språket är typat: statisk eller dynamisk typning. Per Holm ([email protected]) Programspråk, GUI 2014/15 159 / 177

Programspråk - Lunds tekniska högskola

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programspråk - Lunds tekniska högskola

Föreläsning 8 — Programspråk och GUIProgramspråkHistorik: 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

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, BlitzBasic, 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, DarkBasic, 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 . . .

Per Holm ([email protected]) Programspråk, GUI 2014/15 157 / 177

Utveckling?

Basic VisualBasic

Algol 60

Fortran I

Simula

Pascal

C

Smalltalk

C++

Ada

Java

C#

1960 1970 1980 1990 2000

Per Holm ([email protected]) Programspråk, GUI 2014/15 158 / 177

Olika slags programspråk

Programspråk har:

Paradigm: procedurellt språk (C), objektorienterat språk (Java, C++),funktionsspråk (Haskell, LISP), logikspråk (Prolog),skriptspråk (Python), . . .

Typsystem: typat eller otypat språk. Om språket är typat: statisk ellerdynamisk typning.

Per Holm ([email protected]) Programspråk, GUI 2014/15 159 / 177

Page 2: Programspråk - Lunds tekniska högskola

Fortran

SUM = 0DO 10 I = 1,10

TERM = F(I) * F(I - 1)SUM = SUM + TERM

10 CONTINUEWRITE(*,*) ’Summa: ’, SUMSTOPEND

FUNCTION F(K)X = K * KF = X * SIN(X - 1)RETURNEND

Per Holm ([email protected]) Programspråk, GUI 2014/15 160 / 177

Algolbegin

real procedure f(k); integer k;begin

real x;x := k * k;f := x * sin(x - 1);

end;

integer i;real sum, term;

sum := 0;for i := 1 step 1 until 10 dobegin

term := f(i) * f(i - 1);sum := sum + term;

end;Outtext("Summa: "); Outfix(sum, 2, 5);Outimage;

endPer Holm ([email protected]) Programspråk, GUI 2014/15 161 / 177

Simulabegin

class BankAccount(accntNbr); integer accntNbr;begin

integer balance;

integer procedure getBalance;begin

getBalance := balance;end;

procedure deposit(amount); integer amount;begin

balance := balance + amount;end;

end;

ref(BankAccount) myAccount;myAccount :- new BankAccount(12345);myAccount.deposit(1500);

endPer Holm ([email protected]) Programspråk, GUI 2014/15 162 / 177

C++, klassclass BankAccount {private:

int accntNbr;int balance;

public:BankAccount(int nbr);int getBalance() const;void deposit(int amount);

};

BankAccount::BankAccount(int nbr): accntNbr(nbr), balance(0) {}

int BankAccount::getBalance() const {return balance;

}

void BankAccount::deposit(int amount) {balance += amount;

}Per Holm ([email protected]) Programspråk, GUI 2014/15 163 / 177

Page 3: Programspråk - Lunds tekniska högskola

C++, huvudprogram

int main() {BankAccount myAccount(12345);

myAccount.deposit(1500);}

Java har hämtat syntaxen (”formen” hos programmen) från C++. Man skainte tro att man förstår ett C++-program bara för att det liknar ettJavaprogram.

Per Holm ([email protected]) Programspråk, GUI 2014/15 164 / 177

Grafiska användargränssnitt

Xerox PARC Alto: mus, grafisk skärm, fönster,ikoner, menyer, WYSIWYG, LAN

Xerox Star: skrivbordsmetafor, överlappande fönster

Apple Lisa

Apple Macintosh

X11

Windows 3.0Windows 1.0

Aqua (OS X Cheetah)

Windows XPWindows 7

1970 1980 1990 2000 2010

Windows 95

MATE

Windows 8

OS X Yosemite

Per Holm ([email protected]) Programspråk, GUI 2014/15 165 / 177

Xerox Alto, dator

Per Holm ([email protected]) Programspråk, GUI 2014/15 166 / 177

Xerox Alto, skärm

Per Holm ([email protected]) Programspråk, GUI 2014/15 167 / 177

Page 4: Programspråk - Lunds tekniska högskola

Xerox Star

Per Holm ([email protected]) Programspråk, GUI 2014/15 168 / 177

Apple Lisa, dator

Per Holm ([email protected]) Programspråk, GUI 2014/15 169 / 177

Apple Lisa, skärm

Per Holm ([email protected]) Programspråk, GUI 2014/15 170 / 177

Macintosh 1984, dator

Per Holm ([email protected]) Programspråk, GUI 2014/15 171 / 177

Page 5: Programspråk - Lunds tekniska högskola

Macintosh 1984, skärm

Per Holm ([email protected]) Programspråk, GUI 2014/15 172 / 177

Windows 1.0

Per Holm ([email protected]) Programspråk, GUI 2014/15 173 / 177

Windows 3.1

Per Holm ([email protected]) Programspråk, GUI 2014/15 174 / 177

Windows XP

Per Holm ([email protected]) Programspråk, GUI 2014/15 175 / 177

Page 6: Programspråk - Lunds tekniska högskola

Mac OS X

Per Holm ([email protected]) Programspråk, GUI 2014/15 176 / 177

Windows Vista

Per Holm ([email protected]) Programspråk, GUI 2014/15 177 / 177