Download - 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
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
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
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
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
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