Föreläsning 8 — Programspråk och GUI Programspråk Utveckling

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