Page 1 of 1
Comp-eigenschappen: gevaar//// versoepeling type-checking?
Posted: Sun Jan 08, 2006 8:28 pm
by Krikke
1.Zijn er compatibiliteitseigenschappen die potentieel "gevaarlijk" zijn, dus onverwachte resultaten kunnen opleveren? Zo ja, geef van elk mogelijk gevaar een voorbeeld.
2.Compatibiliteitsregels geven soms aanleiding tot "versoepeling" van de type-checking. Som zo volledig mogelijk de in Oberon aanwezige compatibiliteitsregels op, en geef aan waarom de "versoepeling" nuttig of belangrijk is.
Any idea?
Zijn toch ook wel belangrijke vrage
vooral 2, wa moet ge daar allemaal geve?...
versoepleing
Posted: Sun Jan 08, 2006 8:31 pm
by Arutha
Die van pointer extensies en record extensies zeker.
Normaal kunde zoiets ni aan elkaar gelijk stelle nu wel.
U basis en extensie hebben compleet andere type specificaties en toch mag da wel. 't geeft fameus wa flexibiliteit na OO toe.
Polymorfisme is daar op gebouwd volges mij
Posted: Sun Jan 08, 2006 8:33 pm
by Yo_rik
Zo'n gevaarlijke regel is de type-inclusie: ge kunt een LONGINT toekennen aan een REAL, hierbij kan veel nauwkeurigheid verloren gaan.
Posted: Sun Jan 08, 2006 8:47 pm
by EagleEye812
Da weet ik niet :p maar in de cursus staat wel iets fout/onvolledig bij de compatibiliteitsregels van expressies
die tabel van operators:
Oberon.Report.Text wrote:+ - * numeric numeric smallest numeric type including both operands
/ numeric numeric smallest real type including both operands
De Cursus wrote:+ - * numeric numeric smallest numeric type including both operands
/ numeric numeric smallest numeric type including both operands
da moet dan real zijn e
Posted: Sun Jan 08, 2006 8:52 pm
by Krikke
bij deling?
/
als ge 4/2 doet krijgt ge toch gwn shortint? (of was't iets anders da ge bedoelde?

)
Posted: Sun Jan 08, 2006 8:55 pm
by EagleEye812
Krikke wrote:bij deling?
/
als ge 4/2 doet krijgt ge toch gwn shortint? (of was't iets anders da ge bedoelde?

)
nope, da wordt een real
Code: Select all
PROCEDURE Test*;
VAR
a: INTEGER;
BEGIN
a := 4 / 2;
END Test;
pos 248 err 113 incompatible assignment
Posted: Sun Jan 08, 2006 9:04 pm
by j0lle
Laten we dit even verder verduidelijken met een paar een-
voudige voorbeelden. Veronderstel:
s: SHORTINT;
i: INTEGER;
l: LONGINT;
r: REAL;
lr: LONGREAL;
dan krijgen volgende uitdrukkingen het weergegeven type:
l MOD s LONGINT
1.0 / s REAL
i - lr LONGREAL
i * r REAL
r DIV i COMPILATIEFOUT!
1 / lr LONGREAL
Posted: Sun Jan 08, 2006 9:35 pm
by Krikke
1.0 / s REAL
owki
thx, sweer een extra vraag die em WEL mag stelle

Posted: Sun Jan 08, 2006 10:10 pm
by EagleEye812
XenoPhobian wrote:
Dit is inderdaad de tabel da ge moet leren (uit report.text)
In dit tabelleke staan keiveel fouten in de cursus.