Utblickar och sammanfattning
TDP007 Konstruktion av datorspråk
Föreläsning 8
Peter Dalenius
Institutionen för datavetenskap
2016-02-29
Översikt
• Kompilering av kod i Java
• Olika språks popularitet
• Sammanfattning av kursen
• Planering av examination
Stackmaskin
• En teoretisk beräkningsmodell där minnet i
princip endast består av en stack
• Ett program som simulerar en sådan maskin
42
255
2760
10
143
Java Virtual Machine (JVM)
• JVM är ett slags utökad stackmaskin som kan sägas
interpretera program representerade med Java bytekod.
Programkörning
Källkod
i Java
Kompilator
Bytekod
JVM
Exempelkod i Java
public class Example {
public static void main(String[] args) {
outer:
for (int i=2; i<1000; i++) {
for (int j=2; j<i; j++) {
if (i % j == 0)
continue outer;
}
System.out.println(i);
}
}
}
Vad finns i bytekod-filen?
Konstantpool
Metoder
Attribut
Bytekod
00:
01:
02:
03:
06:
09:
0a:
0b:
0c:
0d:
10:
11:
12:
13:
16:
19:
1c:
1f:
22:
23:
26:
29:
2c:
iconst_2
istore_1
iload_1
sipush 03e8
if_cmpge 2c
iconst_2
istore_2
iload_2
iload_1
if_cmpge 1f
iload_1
iload_2
irem
ifne 19
goto 26
iinc 2, 1
goto 0b
getstatic #2
iload_1
invokevirtual #3
iinc 1, 1
goto 02
return
Stack
Variabler
Kursens mål
• förklara och använda reguljära uttryck
seminarie 1-2
• använda verktyg för hantering av
uppmärkningsspråk (t.ex. XML)
seminarie 2
• använda och modifiera en tolk för ett
enklare programspråk
seminarie 3
• redogöra för och tillämpa grundläggande
principer för design av programspråk
seminarie 3-4
samt opposition
och utvecklarblogg
Olika typer av datorspråk
Dataspråk
Programspråk
reguljära uttryck XML
Domänspecifika språk
Ruby-specifika
tekniker för DSL
Traditionell beräkning
Generella språk
parsning
Alternativ beräkning
icke-deterministisk constraintnätverk
programmering
Vilka språk är mest populära?
• TIOBE Programming Community Index
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.ht
ml
Varför finns det så många språk?
• Språk utvecklas hela tiden
• Speciella tillämpningar
• Tycke och smak
Varför blir ett språk populärt?
• Uttryckskraft
• Lätt att lära sig
• Standarder
• Öppen källkod
• Bra verktyg
• Stöd från företag och organisationer
Varför ska man studera språk?
• Bättre på att förstå hela språket
• Kan välja olika sätt att uttrycka sig
• Bättre på att använda hjälpverktyg
• Återskapa funktionalitet i språk som saknar den
• Återanvända språktekniker för andra ändamål
Planering av examination 2016
• Dugga 2
•
Torsdag 10/3 kl 13.15-15.15
• Datortenta (omexamination för dugga 1 och 2)
•
Torsdag 17/3 kl 08.00-12.00
•
Senaste anmälan måndag 7/3
•
Kom i tid!
•
Ta med LiU-id!
• Hemtenta (omexamination för seminarier)
•
Finns på webbsidorna
•
Deadline 1 april
www.liu.se