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
Image

Image

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 :mrgreen:

Posted: Sun Jan 08, 2006 10:10 pm
by EagleEye812
XenoPhobian wrote:Image
Dit is inderdaad de tabel da ge moet leren (uit report.text)

In dit tabelleke staan keiveel fouten in de cursus.