atari-home.de - Foren

Software => Coding => Thema gestartet von: guest2482 am Mi 07.03.2012, 22:07:25

Titel: Modula-2 Frage
Beitrag von: guest2482 am Mi 07.03.2012, 22:07:25
Hallo Leute, habe neulich einen älteren Modula-2 Sourcecode ausgegraben (der nicht von mir ist), und wollte den spaßeshalber mal auf einem aktuellen Linux-System compilieren. Hier hab ich den GNU Modula-2 Compiler gefunden, aber er stört sich an einem Konstrukt im alten Sourcecode, das es wohl nur beim Megamax Modula-2 früher gab... und zwar beispielsweise folgendes bei einer Prozedurdeklaration:

PROCEDURE Print (REF s : ARRAY OF CHAR);

GNU Modula-2 kennt das "REF" Schlüsselwort nicht. Kennt sich noch jemand mit Megamax Modula-2 aus und weiß, für was das gut war? Kann ich das einfach durch "VAR" ersetzen oder weglassen? Der Sourcecode ist leider voll davon, deshalb würd ich das gerne erst verstehen, bevor ich das ausprobiere zu ändern...
Titel: Re: Modula-2 Frage
Beitrag von: afalc060 am Do 08.03.2012, 00:06:46
schau mal auf http://www.tempel.org/files-d.html (http://www.tempel.org/files-d.html)
da gibt es das megamax-modula. auch die komplette doku.

Zitat
Beim öbertragen eines Programms auf  einen  Compiler,  der  REF-Parameter
nicht kennt, entstehen keine Probleme: Lîschen Sie einfach alle Vorkommen
von REF. Dann werden die Daten wieder lokal kopiert, so daû bis auf einen
evtl. grîûeren  Stack-Bedarf  keine  weiteren  ProgrammÑnderungen  notwendig
werden.
Titel: Re: Modula-2 Frage
Beitrag von: guest522 am Do 08.03.2012, 20:16:45
Es scheint sowas wie ein call-by-reference zu sein, bei dem das Ändern der übergebenen Variablen nicht zugelassen ist.
Offensichtlich hat man hier versucht CPU Zyklen und Speicher zu sparen.
Wenn  man es durch VAR ersetzt, sollte es also funktionieren.
Titel: Re: Modula-2 Frage
Beitrag von: guest2482 am Di 13.03.2012, 20:29:44
Vielen Dank für die Tipps! Vor allem das Megamax-Modula-Handbuch ist ja Gold wert! Werde das mal ausprobieren wie dort beschrieben...