[Oberon] XML Parser-API for OBERON

Dieter d.gloetzel at web.de
Wed Jan 20 10:46:40 CET 2016


Hallo Peter,

could it be that /MaxConstLegth/ also plays a role?
Or it is a limit of the Object File Format?

from "OPO.Mod"
================================================================
     (* code and data length per module *)
     CodeLength*     = 65000;    (* 64KByte Code Lenght per Module *)
     MaxConstLength*    = 64*1024;    (* Max Const size allowed, limited 
by Object File Format*)
================================================================


Regards, Dieter

Am 20.01.2016 um 10:24 schrieb Dieter:
> Hallo Peter,
>
> danke, das scheint ein hilfreicher Tipp zu sein. Nur leider ist es mir 
> nicht gelungen, ihn zu implementieren.
> Was habe ich gemacht?
> 1. OPO.Obj im Object-Directory unter anderem Namen gesichert.
> 2. OPO.Mod im Source-Directory gesichert
> 3. OPO.Mod geändert und kompiliert.
> 4. OPO.Obj erscheint im Work-Directory.
> 5. OPO.Obj ins Object-Directory kopiert.
> ==> Nun funktioniert der Compiler nicht mehr.
> Dann habe ich alles rückabgewickelt und den alten Zustand mit 65000 
> Bytes wiederhergestellt, d.h. den ursprünglichen Objectfile 
> wiederverwendet.
>
> Kann es sein, dass die ETH-Truppe irgendwelche Versionsoder 
> Konsistenzmerkmale abprüft?
>
> Hast Du eine Ahnung, was ich machen muss?
>
> Gruß Dieter
>
> Am 19.01.2016 um 22:16 schrieb Peter Matthias:
>> If object code size is the only real problem you likely can increase 
>> it by increasing the "CodeLength" constant in OPO.Mod and recompiling 
>> and reloading OPO.
>> ARM and MIPS have 128k default codesize, but the compilers are not 
>> fully source code compatible with your code and code is less dense, 
>> so leaving about 70..90k compared to x86 code.
>>
>> Regards,
>>     Peter
>>
>> Am 19.01.2016 um 09:21 schrieb Dieter:
>>> Hallo Jörg,
>>>
>>> danke für Dein Interesse. Genauso, wie von dir beschrieben, bin ich das
>>> Problem auch angegangen und habe es auch erfolgreich gelöst.
>>>
>>> Aber, wie gesagt, schramme ich bei jeder größeren Änderung an der
>>> 64K-Grenze für Module herum, und fange dann an, nach Bytes zu suchen,
>>> die ich einsparen kann.
>>>
>>> Meine Frage ist, ob es für den lowlayer (Datenbank oder Objektmodell)
>>> bereits irgendwelche Hilfsmittel in Oberon gibt, mit denen man mein
>>> Problem eleganter lösen könnte.
>>>
>>> Ich erinnere mich, dass es an der ETHZ z.B. Compilergeneratoren oder
>>> Ähnliches gibt. Aber ich bin nur Physiker und zuwenig Informatiker, um
>>> das einschätzen zu können.
>>>
>>> Und vielleicht wäre das auch mit Kanonen auf Spatzen geschossen.
>>>
>>> Gruß
>>> Dieter
>>>
>>>
>>>
>>> Am 19.01.2016 um 08:37 schrieb Jörg Straube:
>>>> Dieter
>>>>
>>>> Deine Aufgabe besteht eigentlich aus zwei Teilen
>>>> 1) Syntax: Lowlayer Ein- und Ausgabe der zwei Sprachen (XML und TeX)
>>>> 2) Semantik: Umwandeln bzw Mappen der beiden unterschiedlichen 
>>>> Datenmodelle beider Sprachen
>>>>     XML scheint mir nach Stimme bzw Instrument sortiert, TeX 
>>>> scheint nach Takt sortiert.
>>>>
>>>> Du hast das richtig erkannt, dass du eine Art Objektmodell (du 
>>>> nanntest es Datenbank) als temporären Zwischenspeicher brauchst, 
>>>> das die Info aus beiden Datenmodellen beinhaltet.
>>>> Nehmen wir mal an, das ganze Ave Maria hätte im Hauptspeicher 
>>>> Platz, dann brauchst du eine Routine, die das XML parst und mit der 
>>>> Hilfe vielen NEW()s als Objektmodell mit entsprechend Verlinkungen 
>>>> zum einfachen Navigieren innerhalb des Objektmodells im 
>>>> Hauptspeicher ablegst.
>>>> Im zweiten Schritt liest eine andere Routine das Objektmodell in 
>>>> der von TeX geforderten Reihenfolge aus und generiert den TeX-Text.
>>>>
>>>> Das ist eigentlich vergleichbar mit einem Compiler: Er liest 
>>>> ASCII-Quelltext ein und gibt RISC5-Assemblercode aus :-)
>>>> Auch da hast du einen Scanner, der die Lowlayer Syntax beherrscht 
>>>> (in dienem Fall XML) und einen Parser, der sich um die Semantik 
>>>> kümmert. (in deinem Fall die Instrumente und Takte)
>>>>
>>>> Wenn das Ave Mara nicht im Hauptspeicher Platz findet, wird’s 
>>>> komplizierter, da du dann entweder das Objektmodell in einer Datei 
>>>> zwischenspeichern musst, oder du das XML immer wieder von Beginn 
>>>> weg parst bis du bei dem Takt angelangt bist, den du via TeX gerade 
>>>> rausschreiben willst.
>>>>
>>>> Gruss
>>>> Jörg
>>>>> Am 18.01.2016 um 10:44 schrieb Dieter<d.gloetzel at web.de>:
>>>>>
>>>>> Doug,
>>>>>
>>>>> you are right. I should express myself more clearly.
>>>>>
>>>>> My overall theme is typesetting musical notes. There exists a 
>>>>> description language called "MusicXML" developed by RECORDARE 
>>>>> Inc., which can be exported from several musical typesetting systems.
>>>>> And there is a TeX based musical typesetting system called 
>>>>> "MusiXTeX" with a preprocessor called "PMX".
>>>>>
>>>>> I want to convert MusicXML as input to PMX. I have solved my 
>>>>> problem already by brute force Oberon programming, but I wonder 
>>>>> whether there is a more elegant way to do it.
>>>>> My program is pretty long,  and several times I hit the compiler 
>>>>> limit of 64K for module size already. Also the modular layout may 
>>>>> be less then optimal.
>>>>>
>>>>> I am looking for something like a  database which makes accessible 
>>>>> the contents of the MusicXML file.
>>>>>
>>>>> I.e. answering questions like "What is the pitch and duration of 
>>>>> the 25th note in measure 10 of instrument 7?"
>>>>>
>>>>> I attach an example.
>>>>>
>>>>> It would be great, if somebody could share his experience in XML 
>>>>> programming with Oberon.
>>>>>
>>>>> Regards,
>>>>> Dieter
>>>>>
>>>>> P.S.: I am using ETHOberon 2.5 plugin for Windows.
>>>>>
>>>>>
>>>>> Am 18.01.2016 um 00:28 schrieb Dougls G. Danforth:
>>>>>> Dieter,
>>>>>> Your question is ambiguous.
>>>>>> Do you mean a parser of Oberon written in XML?
>>>>>> If so what is the output of the parser?
>>>>>> Or do you mean a parser of Oberon that generates XML?
>>>>>>
>>>>>> -Doug Danforth
>>>>>>
>>>>>> On 1/17/2016 7:57 AM, Dieter wrote:
>>>>>>> I wonder wether anybody on this mailing list knows about the 
>>>>>>> existence of an XML Parser API for Oberon.
>>>>>>>
>>>>>>> Thanks and regards,
>>>>>>> Dieter Glötzel
>>>>>>>
>>>>>>> -- 
>>>>>>> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related 
>>>>>>> systems
>>>>>>> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>>>>>>>
>>>>>> -- 
>>>>>> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related 
>>>>>> systems
>>>>>> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>>>>>>
>>>>>
>>>>> -- 
>>>>> ____________________________________
>>>>> Dr. Dieter Glötzel
>>>>> Im Rosengarten 27
>>>>> 64367 Mühltal
>>>>> Tel.: 06151 / 360 82 72
>>>>>
>>>>> <SchbAvMaSample.xml><AveMariaY.PMX><AveMariaY.pdf>--
>>>>> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related 
>>>>> systems
>>>>> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>>>>
>>>>
>>>> -- 
>>>> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related 
>>>> systems
>>>> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>>>
>>>
>>> -- 
>>> ____________________________________
>>> Dr. Dieter Glötzel
>>> Im Rosengarten 27
>>> 64367 Mühltal
>>> Tel.: 06151 / 360 82 72
>>>
>>>
>>>
>>> -- 
>>> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related 
>>> systems
>>> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>>>
>> -- 
>> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
>> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>>
>
>
> -- 
> ____________________________________
> Dr. Dieter Glötzel
> Im Rosengarten 27
> 64367 Mühltal
> Tel.: 06151 / 360 82 72
>
>
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon


-- 
____________________________________
Dr. Dieter Glötzel
Im Rosengarten 27
64367 Mühltal
Tel.: 06151 / 360 82 72

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.inf.ethz.ch/pipermail/oberon/attachments/20160120/d8a2c177/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 2489 bytes
Desc: not available
URL: <http://lists.inf.ethz.ch/pipermail/oberon/attachments/20160120/d8a2c177/attachment.png>


More information about the Oberon mailing list