Parsing Mixfix Expressions. Dealing with User-Defined Mixfix Operators Efficiently

dc.contributor.advisorPepper, Peteren
dc.contributor.authorWieland, Jacoben
dc.contributor.grantorTechnische Universität Berlin, Fakultät IV - Elektrotechnik und Informatiken
dc.date.accepted2009-10-12
dc.date.accessioned2015-11-20T19:14:03Z
dc.date.available2010-01-08T12:00:00Z
dc.date.issued2010-01-08
dc.date.submitted2010-01-08
dc.description.abstractDie Arbeit beschäftigt sich mit dem Thema Mixfix-Operatoren, einem Konzept, welches eine Verallgemeinerung der in gängigen Programmiersprachen üblichen Operatoren, Funktionen, Prozeduren und sonstigen Konstrukte darstellt. Es soll gezeigt werden, daß es möglich ist, dem Nutzer von Programmiersprachen zu erlauben, solche Operatoren in fast beliebiger Form selbst inneralb dieser Sprachen zu definieren, um diese dann in sogenannten Mixfix-Ausdrücken benutzen zu können. Dies soll zur besseren Schreib- und Lesbarkeit von Programmiersprachen beitragen und damit zur ihrer besseren Benutzbarkeit sowie erhöhter Wartbarkeit von darin geschriebenen Programmen aus softwaretechnischer Sicht. Sprachen mit solchen Ausdrücken können außerdem besser an die Bedürfnisse der sie benutzenden Kreise angepasst werden. Es werden notwendige Einschränkungen der definierbaren Operatoren vorgestellt, so daß die Sprache der Mixfix-Ausdrücke syntaktisch eindeutig wird und effiziente Verfahren der syntaktischen Analyse solcher Ausdrücke möglich werden, welche ebenfalls erläutert werden. Die Gründe für diese Einschränkungen werden motiviert durch die möglichen Ursachen für syntaktische Mehrdeutigkeit in Mixfix-Ausdrücken, nämlich in mehreren Operatoren vorkommende Separator-Teile, aneinander angrenzende Operanden und unsichtbare Operatoren, natürliche und benutzerdefinierte Präzendenz von Operatoren, sowie Konverter-Operatoren und Polymorphie von Operatoren. Es werden bewußt keine Einschränkungen auf die Sprache der Mixfix- Ausdrücke eingeführt, die auf das Verfahren der Parsierung zurückzuführen sind, sondern nur solche, die aus den oben genannten Gründen zwingend notwendig sind. Die Arbeit diskutiert kritisch die bisherigen Ansätze, mit Mixfix-Operatoren in Programmiersprachen umzugehen und legt Gründe offen, warum diese Ansätze für eine so mächtige Sprache von Mixfix-Ausdrücken wie der hier vorgestellten nicht angemessen sind. Ein von der klassischen Vorgehensweise abweichender Ansatz wird diskutiert, bei dem aus den vom Nutzer definierten Mixfix-Operatoren Zwei-Stufen- Grammatiken für die Sprache der Mixfix-Ausdrücke abgeleitet werden. Die Implementation des Parsierungsvorgangs verwendet diese Grammatiken derart, daß die syntaktische Analyse mit Teilen der semantischen Analyse verquickt wird und somit Typ-Inferenz auf die Parsierung Einfluß nehmen kann. Das Verfahren wird am Beispiel einer modernen funktionalen Programmiersprache geschildert. Es sollte gezeigt werden, dass so gut wie keine Einschränkungen der Konzepte dieser sehr mächtigen Sprachen notwendig sind, wenn benutzerdefinierte Mixfix-Operatoren darin eingeführt werden. Es wäre dementsprechend ebenso möglich, solche Operatoren auch in weniger ausdrucksmächtigen Sprachen einzuführen.de
dc.description.abstractThis thesis revolves around mixfix operators, a concept which is a generalization of the usual operators, functions, procedures and other structured constructs to be found in common programming languages. We show that it is possible to allow the user of a programming language to define such operators in almost arbitrary fashion inside the language itself to be used in so-called mixfix expressions. This shall contribute to a heightened readability and easier writing of such programming languages, thus making them more easily usable and by that better maintainable from a software- engineering point of view. As an additional benefit, programming languages containing mixfix expressions also allow better customization to the needs of the circles using them. We describe the necessary restrictions to be imposed on the user-defined mixfix operators and expressions so that the latter become unambiguous while still allowing efficient algorithms for syntactic analysis, which will also be proposed. These restrictions are motivated solely by the four causes of possible ambiguity of mixfx expressions that we have determined, namely shared sep- arator tokens between operators, adjacent operands and invisible operators, natural and user-defined ad-hoc precedence relations between operators, as well as converter operators and polymorphism. We expressly refrain from re- strictions motivated by different efficient parsing strategies, but only introduce restrictions which are definitely necessary to avoid the causes of ambiguity. The commonly used approaches to the problems imposed by mixfix operators in programming languages are criticized concluding that they are ill fit to deal adequately with such operators in a general mixfix expression language. Therefore, we propose a strategy which diverts from the classic approaches by using two-level grammars for the mixfix expressions derived directly from the user-defined mixfix operator signatures. The implementation of the parsing process of such expressions uses these grammars in such a way that parts of the semantic analysis, i.e. partial type-inference, can have an influence on the syntactical analysis. The whole process is explained by using as an example a modern functional programming language. We aim to show that if the possibility to define and apply user-defined mixfix operators is introduced into such a language almost no restrictions on its powerful concepts need to be added. Following that, it would likewise be possible to introduce such operators also in languages with less powerful expression concepts.en
dc.identifier.uriurn:nbn:de:kobv:83-opus-25083
dc.identifier.urihttps://depositonce.tu-berlin.de/handle/11303/2630
dc.identifier.urihttp://dx.doi.org/10.14279/depositonce-2333
dc.languageEnglishen
dc.language.isoenen
dc.rights.urihttps://creativecommons.org/licenses/by-sa/2.0/deen
dc.subject.ddc004 Datenverarbeitung; Informatiken
dc.subject.otherBackbonede
dc.subject.otherMixfix-Ausdruckde
dc.subject.otherMixfix-Operatorde
dc.subject.otherMixfix-Parsierungde
dc.subject.otherZwei-Stufen-Grammtik-Transformationende
dc.subject.otherBackboneen
dc.subject.otherMixfix expressionen
dc.subject.otherMixfix operatoren
dc.subject.otherMixfix parsingen
dc.subject.otherTwo-level grammar transformationsen
dc.titleParsing Mixfix Expressions. Dealing with User-Defined Mixfix Operators Efficientlyen
dc.title.translatedParsieren von Mixfix-Ausdrücken. Effizienter Umgang mit Nutzer-Definierten Mixfix-Operatorende
dc.typeDoctoral Thesisen
dc.type.versionpublishedVersionen
tub.accessrights.dnbfree*
tub.affiliationFak. 4 Elektrotechnik und Informatikde
tub.affiliation.facultyFak. 4 Elektrotechnik und Informatikde
tub.identifier.opus32508
tub.identifier.opus42391
tub.publisher.universityorinstitutionTechnische Universität Berlinen

Files

Original bundle
Now showing 1 - 1 of 1
Loading…
Thumbnail Image
Name:
Dokument_46.pdf
Size:
706.12 KB
Format:
Adobe Portable Document Format

Collections