ALTRAN ( Algebraic Translator ) ist eine Programmiersprache zur formalen Manipulation rationaler Funktionen mehrerer Variablen mit ganzzahligen Koeffizienten. Sie wurde in den 1960er Jahren bei den Bell Labs entwickelt. [ 1 ] ALTRAN ist eine FORTRAN- Version des ALPAK- Pakets für rationale Algebra [ 2 ] und kann als Variante von FORTRAN mit einer zusätzlichen Deklaration, der Typdeklaration „algebraisch“, betrachtet werden. [ 3 ]
Obwohl ALTRAN in ANSI FORTRAN geschrieben ist, gibt es dennoch Unterschiede in den FORTRAN-Implementierungen. ALTRAN behandelt Maschinenabhängigkeiten mithilfe eines Makroprozessors namens M6. [ 1 ] [ 4 ]
ALTRAN sollte nicht mit dem ALGOL-zu-FORTRAN-Übersetzer namens Altran verwechselt werden, der „Extended-Algol-Programme in Fortran IV konvertiert“. [ 5 ]
Geschichte
ALPAK, geschrieben 1964, bestand ursprünglich aus einer Reihe von Unterprogrammen für FORTRAN, die in Assemblersprache geschrieben waren . Diese Unterprogramme wurden später für ALTRAN in FORTRAN neu geschrieben. [ 6 ]
Eine frühe Version von ALTRAN wurde Mitte der 1960er Jahre von M. Douglas McIlroy und W. Stanley Brown entwickelt . [ 1 ] Kurz nach Fertigstellung ihres ALTRAN-Übersetzers wurden die IBM 7094 -Computer, auf denen ALPAK und ALTRAN basierten, jedoch nach und nach durch neuere Maschinen ersetzt. Dies führte zur Entwicklung einer fortschrittlicheren ALTRAN-Sprache und -Implementierung durch Brown, Andrew D. Hall, Stephen C. Johnson , Dennis M. Ritchie und Stuart I. Feldman , die sich durch hohe Portabilität auszeichnete. [ 7 ] [ 8 ] Der Übersetzer wurde von Ritchie, der Interpreter von Hall, die Laufzeitroutinen für rationale Funktionen und Polynome von Feldman, Hall und Johnson und die Ein-/Ausgaberoutinen von Johnson implementiert . [ 1 ]
Später fügten Feldman und Julia Ho ein Paket zur Auswertung rationaler Ausdrücke hinzu, das genaue und effiziente FORTRAN-Subroutinen für die numerische Auswertung von symbolischen Ausdrücken generierte, die von ALTRAN erzeugt wurden. [ 7 ]
1979 wurde ALTRAN auf die Computer Control Data Corporation 6600 und Cyber 176 im Air Force Weapons Laboratory portiert . Man stellte fest, dass ALTRAN in einer PL/I- Umgebung etwa 15-mal schneller als FORMAC und mindestens 12-mal schneller als REDUCE ist . Außerdem wurde beobachtet, dass ALTRAN Probleme schnell lösen konnte, die weder FORMAC noch REDUCE auf der gegebenen Hardware oder in angemessener Zeit bewältigen konnten. [ 9 ]
Beispielprogramm
Ein kurzes Beispielprogramm: [ 9 ]
PROCEDURE MAIN # EINFACHES BEISPIEL FÜR DIE VERWENDUNG VON FTNOUT LONG ALGEBRAIC ( X : 10 , Y : 10 ) F ALTRAN FTNOUT OPTS ( 201 , 72 ) # FTNOUT BENÖTIGT EINE ZEILENLÄNGE VON 72 F = EXPAND ( ( X + 2 * Y + 1000000 ) ** 3 ) WRITE F # PRINT F WRITE ( 25 ) " FUNKTION F(X,Y)" "C-BEISPIELPROGRAMM MIT FTNOUT GESCHRIEBEN." , F , " RETURN" ™ , " END" # WIR HABEN EIN EINFACHES PROGRAMM AUF UNIT 25 GESCHRIEBEN, JETZT RUFEN WIR FTNOUT AUF, UM # DIESE ALTRAN-AUSGABE IN LEGALES FORTRAN ZU ÜBERSETZEN. FTNOUT ENDBetrieb
| Betrieb | ALTRAN-Syntax | Beispiel zu Polynomen |
|---|---|---|
| Zusatz | C = A+B | |
| Subtraktion | C = A-B | |
| Multiplikation | C = A*B | |
| Division | D = A/B | |
| Ganzzahlige Exponentiation | D = A**K | |
| Auswechslung | G = F(X = P, Y = Q) | |
| Differenzierung | G = DIFF(F, Y) | |
| Größter gemeinsamer Teiler | D = GCD(A, B) |
Siehe auch
- MATH-MATIC (Algebraischer Übersetzer 3)
Referenzen
- ^ a b c d e f Hall, AD, "Das ALTRAN-System zur Manipulation rationaler Funktionen – Eine Übersicht". Communications of the ACM , 14(8):517–521 (August 1971).
- ^ a b Tapley, BD; Szebehely, VG (2012). Recent Advances in Dynamical Astronomy . Springer Science & Business Media. S. 364. ISBN 978-94-010-2611-6Abgerufen am 3. September 2019 .
- ^ Geddes, Keith O.; Czapor, Stephen R.; Labahn, George (2007). Algorithmen für Computeralgebra . Springer Science & Business Media. S. 4. ISBN 0-7923-9259-0Abgerufen am 3. September 2019 .
- ^ Brown, PJ (Hrsg.). (1977). Software Portability . Cambridge University Press. S. 21. ISBN 0-521-29725-7Abgerufen am 3. September 2019 .
- ^ Wilner, Wayne T. „ALGOL TO FORTRAN TRANSLATOR“ (PDF) . slac.stanford.edu . Abgerufen am 3. September 2019 .
- ^ Lamagna, Edmund A. (2019). Computeralgebra: Konzepte und Techniken . CRC Press. S. 12. ISBN 9781138093140Abgerufen am 3. September 2019 .
- ^ a b Holbrook, Bernard D.; Brown, W. Stanley. „Computing Science Technical Report No. 99 – A History of Computing Research at Bell Laboratories (1937–1975)“ . Bell Labs . Abgerufen am 2. Februar 2020 .
{{cite web}}CS1-Wartung: Veralteter Archivierungsdienst ( Link ) - ^ Johnson, SC; Ritchie, DM (1976). „Unix Portability“ .
Es ist klar, dass der von Unix in C versprochene Grad an Portabilität nicht an den von beispielsweise ALTRAN heranreicht, das von jemandem, der mit den lokalen Gegebenheiten vertraut ist, aber ALTRAN selbst nicht kennt, innerhalb von zwei Wochen zum Laufen gebracht werden kann.
- ^ a b Rhoades, Jr., Cecil E. „AFWL Implementation of ALTRAN“ (PDF) . dtic.mil . Archiviert (PDF) vom Original am 3. September 2019. Abgerufen am 3. September 2019 .
- WS Brown, „Eine Sprache und ein System für symbolische Algebra auf einem Digitalrechner“, SYMSAC '66 Proceedings of the first ACM symposium on Symbolic and algebraic manipulation, S. 501-540, Januar 1966.
- WS Brown, ALTRAN Benutzerhandbuch (2. Aufl.), Bell Laboratories, Murray Hill, NJ, 1972.
- WS Brown, ALTRAN Benutzerhandbuch (3. Aufl.), Bell Laboratories, Murray Hill, NJ, 1973.
- Stuart I. Feldman, „Eine kurze Beschreibung von Altran“, ACM SIGSAM Bulletin, Band 9 Ausgabe 4, November 1975, S. 12 - 20.
- AD Hall und SC Johnson, „ALTRAN-Programme für SIGSAM-Problem Nr. 6“, ACM SIGSAM Bulletin, Band 8 Ausgabe 2, Mai 1974, S. 12 - 36.
- Mansour Farah, „Eine formale Beschreibung von ALTRAN unter Verwendung verknüpfter Waldmanipulationssysteme“, Technischer Bericht CS-73-08, Universität Waterloo, April 1973.