Kurzfassung
Unter nichtprozeduralen Sprachen versteht man das ganze Spektrum applikativer bzw. funktionaler (z.B. Lisp, Hope, FP, Miranda, ML), logischer (z.B. Prolog) und objektorientierter (z.B. Smalltalk-80, Loops) Programmiersprachen. Trotz der Breite des Spektrums gibt es eine ganze Reihe von Gemeinsamkeiten in der Konzeption dieser Sprachen, die zu spezifischen Implementierungsproblemen führen, wie man sie von der Implementierung herkömmlicher, z.B. Pascalartiger Sprachen nicht kennt. Auf der Ebene von primitiven Datentypen finden sich Listen bzw. Bäume mit zugehörigen Standardoperationen und der Forderung nach automatischer Speicherverwaltung. In “lazy” Sprachen dürfen diese Strukturen sogar unendlich sein, die endliche Repräsentation muß das System effizient erledigen. Funktionen beliebiger Ordnung sind in den meisten Fällen gleichberechtigt mit primitiven Daten. Dies bedeutet, daß sie insbesondere uneingeschränkt als Argumente und Ergebnisse von Funktionen auftreten dürfen. Aus diesem Grunde sind Variablenadressierungsmechanismen komplizierter als in Pascal.Regel- und musterorientierte Definitionsweisen müssen mit möglichst effizienten und “backtracking”-freien Mustererkennungsverfahren realisiert werden.
Im Bereich Typisierung und Typrüfung löst heute der Typpoly- morphismus die frühere Untypisiertheit von Lisp- und Prolog-artigen Sprachen ab. Dies bedeutet eine erhebliche Erhöhung der Zuververlässigkeit von Programmen, da Typfehler erkannt werden können, ohne die Flexibilität einer untypi- sierten Sprache wesentlich zu beeinträchtigen. Typinferenz, d. h. das automatische Bestimmen des allgemeinsten Typs einer Variablen, der mit allen ihren Anwendungen verträglich ist, ersetzt die Typprüfung in herkömmlichen Sprachen.
Der Vortrag versucht, anhand von Beispielen, die erwähnten Probleme zu illustrieren und grundlegende Ideen der zugehörigen Implementierungstechniken (z.B. Vermeidung der Konstruktion von Zwischenergebnissen bei Funktionskomposition, Einführung von globalen Variablen, Kombinatorkalküle und Graphreduktionsmaschinen, Striktheitsanalyse, intelligentes (!) “backtracking”, Typinferenz) zu erläutern.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1986 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ganzinger, H. (1986). Nichtprozedurale Sprachen und Probleme bei ihrer Implementierung. In: Hommel, G., Schindler, S. (eds) Informatik-Anwendungen — Trends und Perspektiven. Informatik-Fachberichte, vol 126. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-71388-0_3
Download citation
DOI: https://doi.org/10.1007/978-3-642-71388-0_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-16813-3
Online ISBN: 978-3-642-71388-0
eBook Packages: Springer Book Archive