Projektforslag på modul 2 ved Keld Helsgaun
-
Upload
kermit-mcfadden -
Category
Documents
-
view
17 -
download
3
description
Transcript of Projektforslag på modul 2 ved Keld Helsgaun
![Page 1: Projektforslag på modul 2 ved Keld Helsgaun](https://reader035.fdocument.pub/reader035/viewer/2022080917/5681325a550346895d98eb2b/html5/thumbnails/1.jpg)
1
Projektforslag på modul 2ved
Keld Helsgaun
![Page 2: Projektforslag på modul 2 ved Keld Helsgaun](https://reader035.fdocument.pub/reader035/viewer/2022080917/5681325a550346895d98eb2b/html5/thumbnails/2.jpg)
2
Fagligt indhold
Projekt- og kursusarbejdet skal give de studerende indsigt i følgende emnekredse:
Gå bag kulisserne
• Datamaskinens opbygning• Basisprogrammel• Programmeringssprog• Datamatbaserede værktøjer• Teoretiske modeller for datamaskiner og
beregninger
• Maskinnære sprog • Paradigmer for højniveausprog• Syntaks og semantik for programmeringssprog
Teknologi:
Sprog: (formaliserede sprog)
(edb-teknologi)
![Page 3: Projektforslag på modul 2 ved Keld Helsgaun](https://reader035.fdocument.pub/reader035/viewer/2022080917/5681325a550346895d98eb2b/html5/thumbnails/3.jpg)
3
NESL - et sprog til
parallelprogrammering
• udviklet ved Carnegie Mellon (USA)
• tilbyder parallelle operationer på data
• programmer i sproget er lette at forstå og bevise (velegnet som undervisningssprog)
Eksempel (Quicksort):
function Quicksort(S) =
if (#S <= 1) then S
else
let a = S[rand(#S)];
S1 = {e in S | e < a};
S2 = {e in S | e = a};
S3 = {e in S | e > a};
R = {Quicksort(v): v in [S1,S3]};
in R[0] ++ S2 ++ R[1] $
![Page 4: Projektforslag på modul 2 ved Keld Helsgaun](https://reader035.fdocument.pub/reader035/viewer/2022080917/5681325a550346895d98eb2b/html5/thumbnails/4.jpg)
4
Projektideer
NESL-programmer er flytbare, idet de oversættes til en mellemkode kaldet VCODE.
Mulige projekter:
En oversætter til NESL
En VCODE-fortolker
Animering af programkørsel
Evaluering af NESL
![Page 5: Projektforslag på modul 2 ved Keld Helsgaun](https://reader035.fdocument.pub/reader035/viewer/2022080917/5681325a550346895d98eb2b/html5/thumbnails/5.jpg)
5
Grænseflader imellem sprog- anvendelse af Javas ”native
interface”
Javas ”native interface” benyttes, når
(1)Java ikke understøtter platformsafhængige faciliteter,
(2) eksisterende programmel skrevet i andre sprog end Java, ønskes benyttet i et Java- program,
(3) størst mulig effektivitet er ønskelig.
Projektide:effektiv quicksortering i Java-programmer.
![Page 6: Projektforslag på modul 2 ved Keld Helsgaun](https://reader035.fdocument.pub/reader035/viewer/2022080917/5681325a550346895d98eb2b/html5/thumbnails/6.jpg)
6
Billedkomprimering
Motivation: minimering af transporttiden ved overførsel af billeder på datanetværk.
Metode (fraktal billedkomprimering): et billede lagres som en samling af simple transformationer. Kunsten er at bestemme samlingen af transformationer.
Projekttide: udvikling af en programpakke til fraktal billedanalyse.
wi =ab
cd
⎛
⎝ ⎜
⎞
⎠ ⎟
x
y
⎛
⎝ ⎜
⎞
⎠ ⎟ +
e
f
⎛
⎝ ⎜
⎞
⎠ ⎟
![Page 7: Projektforslag på modul 2 ved Keld Helsgaun](https://reader035.fdocument.pub/reader035/viewer/2022080917/5681325a550346895d98eb2b/html5/thumbnails/7.jpg)
7
Ekspertsystemer
Et ekspertsystem er et program, der anvender sig af specifik viden inden for et givet område for derved at opnå en kompetence, der kan sidestilles med en eksperts.
En ekspertsystemskal er programmel, der kan benyttes til at udvikle ekspertsystemer.
Projektide:implementering og afprøvning af en ekspertsystemskal.
![Page 8: Projektforslag på modul 2 ved Keld Helsgaun](https://reader035.fdocument.pub/reader035/viewer/2022080917/5681325a550346895d98eb2b/html5/thumbnails/8.jpg)
8
Arkitekturen af et ekspertsystem
Brugergrænseflade
InferensmaskineForklaringsdel Videnbase-editor
Videnbase
Bruger
Ekspertsystem
Ekspertsystemskal
![Page 9: Projektforslag på modul 2 ved Keld Helsgaun](https://reader035.fdocument.pub/reader035/viewer/2022080917/5681325a550346895d98eb2b/html5/thumbnails/9.jpg)
9
Automatisk bevisførelse
Megen viden kan formuleres i den såkaldte første-ordens prædikatlogik.
Eks.menneske(Socrates)
x: menneske(x) fi dødelig(x)
Heraf kan sluttesdødelig(Sokrates)
Projektide: Udvikling af et program til automatisk bevisførelse.
![Page 10: Projektforslag på modul 2 ved Keld Helsgaun](https://reader035.fdocument.pub/reader035/viewer/2022080917/5681325a550346895d98eb2b/html5/thumbnails/10.jpg)
10
Databaseteknologi
I mangle anvendelser ønskes søgning på flere nøgler samtidigt.
Eks.Find alle personer i en database, der hedder Jensen, og som er mellem 20 og 25 år.
I eksemplet her er der både tale om flernøgle-søgning og om intervalsøgning.
Effektiv søgning kræver specielle datastrukturer.
![Page 11: Projektforslag på modul 2 ved Keld Helsgaun](https://reader035.fdocument.pub/reader035/viewer/2022080917/5681325a550346895d98eb2b/html5/thumbnails/11.jpg)
11
Projektide
Udvikling af et databasesystem til fler-nøglesøgning, f.eks. baseret på en af nedenstående datastrukturer:
BD-træer
KD-træer
Quad-træer
BP-træer
Flerdimensionel hashing
Fraktionelle kaskader
![Page 12: Projektforslag på modul 2 ved Keld Helsgaun](https://reader035.fdocument.pub/reader035/viewer/2022080917/5681325a550346895d98eb2b/html5/thumbnails/12.jpg)
12
Funktionsorienteret programmering
I et funktionsorienteret sprog udgør funktioner de centrale byggeklodser.
En funktion kan have funktioner som argumenter, og værdien af en funktion kan være en ny funktion.
Et meget anvendt funktionsorienteret sprog er Lisp.
Projektide: udvikling af en oversætter og fortolker i Java for sproget Lisp.
![Page 13: Projektforslag på modul 2 ved Keld Helsgaun](https://reader035.fdocument.pub/reader035/viewer/2022080917/5681325a550346895d98eb2b/html5/thumbnails/13.jpg)
13
Simulering af en maskine
Projektideer:
Udvikling af en simulator for Javas virtuelle maskine
Udvikling af en simulator for MIX
X EQU 1000ORIG 3000
MAXIMUM STJ EXITINT ENT3 0,1
JMP CHANGEMEMLOOP CMPA X,3
JGE *+3CHANGEMEM ENT2 0,3
LDA X,3DEC3 1JSP LOOP
EXIT JMP *