EvilBro
Artikelen: 0
Berichten: 7.081
Lid geworden op: vr 30 dec 2005, 09:45

Re: Beginselen van programmeren

GC is geen bescherming, het automatiseren.
Nee, het is beschermen. GC wordt gedaan om o.a. memory-leaks te voorkomen. Veel programmeurs kunnen namelijk niet de discipline opbrengen om zelf netjes met geheugen om te gaan.
Wat ik bedoeld is misplaatst beschermen
Het probleem is dat je een heel specifiek idee hebt van 'misplaatst'. 'final' past bij java en is binnen die context volledig logisch. Als het niet is wat jij wilt dat het is, gebruik dan geen java. Dit is echter niet een zwakte van java, net zoals het geen zwakte is van een hamer dat je er geen schroeven mee kan uitdraaien.
(CPS was maar een voorbeeld.
Ja, daar ben je goed in... in 'maar voorbeelden'. Elke keer als ik je vraag om te concretiseren dan grijp je naar deze uitspraak.
Als je wilt weten wanneer je CPS gebruikt is moet je Scheme leren.
Ten eerste is dat niet wat ik vroeg (ik vroeg waarom je CPS in java wilde) en ten tweede lijkt me Scheme leren overbodig (CPS zou je zelfs in javascript kunnen doen als je echt zou willen). CPS is bij functionele talen vooral nodig om ervoor te zorgen dat ze nog enigzins efficient kunnen zijn (vooral als de taal lazy is, anders is je stack zo op...) met als trade-off dat de boel een stuk onleesbaarder wordt. Deze efficientie wordt voornamelijk veroorzaakt doordat de compiler het CPS formaat kan optimaliseren (of doordat de interpreter gedwongen wordt te evalueren). CPS zou niet nodig zijn als compilers 'slimmer' zouden zijn...

Sommige compilers zijn dit kennelijk ook. Ik heb voor de gein even twee keer hetzelfde programma geschreven in Haskell (bepaal de som van de getallen 1 t/m n), een met tail recursion en een zonder. Die zonder heeft een te kleine stack voor n = 1000000, die met niet. Echter als ik bij het compileren de optimalisatie flag meegeef dan worden beide omgezet naar ongeveer dezelfde code. Kennelijk is in dit geval de compiler dus 'slim' genoeg (en is de moeite van CPS dus voor niets).
Om het te begrijpen moet je er mee gewerkt hebben.)
Mag ik dan daaruit de conclusie trekken dat je er niet mee gewerkt hebt? ;)
Gebruikersavatar
qrnlk
Lorentziaan
Artikelen: 0
Berichten: 5.079
Lid geworden op: vr 14 jul 2006, 14:35

Re: Beginselen van programmeren

Nee die conclusie mag je niet trekken. ;)

Wellicht was mijn voorbeeld iets minder handig gekozen, call/cc was waarschijnlijk beter geweest? Nevermind hoe dan ook.

Javascript is btw een zeer mooie programmeertaal met een hoop vrij unieke eigenschappen. Zoals bijvoorbeeld OO zonder classes? Alleen Self heeft iets vergelijkbaar.

Blijft slechts over dat jij het blijkbaar acceptabel vind dat bijvoorbeeld Java met opzet beperkter is gemaakt dan strict noodzakelijk zou zijn geweest en dat ik een andere mening ben toegedaan. Holy wars are made of this... :D

maar niet deze keer :D

(Je hebt gelijk dat ik mijn manier van communiceren niet echt goed werkt op een forum. Mijn verontschuldiging.)
Any sufficiently analyzed magic is indistinguishable from science.

Any sufficiently advanced technology is indistinguishable from magic.



There is no theory of protecting content other than keeping secrets – Steve Jobs
Gebruikersavatar
Schwartz
Artikelen: 0
Berichten: 691
Lid geworden op: di 14 mar 2006, 18:14

Re: Beginselen van programmeren

Garbage collection is wel fijn maar dan moet je dat wel opgeven met de volgende voorwaarden:

aktie toestaan

maximale tijd dat men deze aktie mag toepassen.

Het is erg vervelend om een garbage collection te hebben die te veel tijd duurt bij een spel waarbij men zit te schieten.

Stop plots het manneke om na een tijdje weer door te gaan.

ook irrirant als je zit te typem.

Ik heb liever een goede geheugencontroller die int64 af kan handelen en virtueel adressing kan toepassen.

Bij een geheugentekort kan deze geheugencontroller gewoon overal en alom de stukjes bijeen zetten en een hoger adres teruggeven dan je geheugen werkelijk is.

Ook zou men aan een geheugensectie moeten kunnen vertellen dat het niet zo belangrijk geheugen is wat op de harddisk gezet kan worden.

Een muziekcompositie behoeft men niet in het geheugen te hebben bij een tekort ervan.

Wel de software die een game bestuurt.
Een computertaal is voor mensen, niet voor de computer.
Gebruikersavatar
mo
Artikelen: 0
Berichten: 436
Lid geworden op: ma 31 jan 2005, 18:53

Re: Beginselen van programmeren

Weet iemand hoe ge een matrix kunt opslaan (met als elementen characters), en ge die dan kunt gebruiken om veranderingen aan te brengen. Dus alles blijft hetzelfde in die matrix behalve wa ge wil veranderen. En men moet de matrix bij elke stap tonen.

U doet me een groot plezier als u me kan helpen !

bedankt alvast

ps: die matrix maak ik een klasse, om daarmee te kunnen werken in mijn 'main'klasse etc, als ik meer uitleg moet geven of onduidelijk ben zeg het maar
Gebruikersavatar
mo
Artikelen: 0
Berichten: 436
Lid geworden op: ma 31 jan 2005, 18:53

Re: Beginselen van programmeren

Het probleem is reeds opgelost.

Terug naar “Informatica en programmeren”