wer ist, was ist, wo ist, wann war, was war - Lexikon / Chronik / Biografie / Wissen - ARS plus plus


Werbung

Produkte / Services :|: Chronik CD :|: als Startseite | zu den | empfehlen :|: Impressum
Lexika @ InfoBitte.de :|: Universal-Lexikon | WeltKunst | Geteiltes Deutschland | Zweiter Weltkrieg
WeltChronik.de :|: Welt | Deutschland | Kultur/Kunst/Technik :|: BildDatenBank :|: Biografien

Navigation

WeltChronik
Deutsche Chronik
KulturChronik
Biografien
Bilddatenbank
Kalenderblatt
Epochen
Lexika @ InfoBitte.de
Produkte

Suchfunktionen
Chronik-Jahr direkt

Nur Zahl eingeben
Bereich: '0'-'2001'
PARTNER
Ahnenforschung

Quellen für die Schule

FREE 4 WebMasters

Wir haben eine ganze Palette kostenloser Angebote von uns
für WebMaster und HomePage Besitzer aufbereitet

Holen Sie sich hier ab

was Sie gerne einsetzen würden
Suchfunktionen, Kalenderblatt, uam
für Ihre WebSite



ARS plus plus

ein InfoBitte / WeltChronik
Sach-Artikel (Enzyklopädie / Lexikon)

Entwickelt von ICA-D aus der XML-Version der deutschen WikiPedia
© 2004/2005 ff by de.wikipedia.org, teilw. by ICA-D
blättern» voriger Artikel | Hauptseite | nächster Artikel «blättern

ARS++ ist eine Programmiersprache, die aus A++ mit dem Ziel den Anforderungen der Programmierpraxis gerecht werden zu können hervorgegangen ist.


Während A++ als Instrument gedacht ist, das beim Erlernen der Programmierung behilflich sein soll, wird mit ARS++ ein Werkzeug bereitgestellt mit dem praktische Programmierprobleme ohne Umwege 'ars'-gemäß gelöst werden können.


Inhaltsverzeichnis


1 Wesen und Zweck von ARS++

2 ARS++ und Scheme

3 Ausbau von A++ in ARS++

  3.1 Erste Ausbaustufe

  3.2 Zweite Ausbaustufe

4 Implementierung von ARS++

5 Der Compiler ACOMP

6 A++ - ARS++ - ARSAPI

7 Siehe auch:

8 Externe Links:


Wesen und Zweck von ARS++

In A++ ging es um die Konfrontation mit dem Wesentlichen der Programmierung, wogegen es in ARS++ um die Konfrontation mit der Programmierpraxis geht, um Probleme, die es durch Programmierung zu lösen gilt.


Zu diesem Zweck muss A++ zu einer Sprache ausgebaut werden, die all diesen Anforderungen genügt.


  • So gibt es in ARS++ Zahlen aller Art mit den für ihre Verarbeitung zur Verfügung stehenden Funktionen. Dasselbe gilt für Zeichen, Zeichenketten und boolesche Werte. Es gibt eine reichhaltige Ein-/Ausgabebibliothek und es gibt bereits Syntaxelemente wie 'if', 'case', 'cond', 'while' und ein paar anderen.
  • Dieser Ausbau reicht aber noch nicht aus, um der Konfrontation mit der Programmierpraxis standhalten zu können. Es gäbe noch keine Möglichkeit eine graphische Benutzerschnittstelle zu programmieren, es könnten noch keine Daten aus einem Netzwerk empfangen und an einen anderen Rechner verschickt werden. Bei der Datenspeicherung könnte man nicht auf bewährte und leistungsfähige kommerzielle Datenbanken zugreifen. Man würde auch vergeblich nach vorgegebenen Werkzeugen für eine komfortable Textanalyse im Stil der regulären Ausdrücke suchen. In ARS++ geht der Ausbau also noch weiter, um diesem Mangel abzuhelfen.


ARS++ ist eine Programmiersprache, die


  • auf ARS basiert,
  • die Funktionalität der Programmiersprache Scheme einschließt und
  • durch Zusätze 'Scheme' übertrifft.


Der Name ARS++ ist abgeleitet aus:


ARS++ und Scheme

Trotz der großen Ähnlichkeit zwischen ARS++ und Scheme unterscheiden sie sich doch voneinander. Neben einigen Unterschieden im Detail ist vor allem der Grundansatz verschieden, so wie er sich in der Definition der Sprache in der EBNF-Notation darstellt.


  • Die Definition von ARS++ auf www.lambda-bound.de und die Definition von Scheme in dem R5RS-Report lassen deutliche Unterschiede in der Struktur erkennen. Diejenige von Scheme weist eine erheblich größere Komplexität auf.
  • In ARS++ werden folgende in Scheme angebotene Syntax-Strukturen nicht unterstützt:
    let*, named-let, do, quasi-quote, unquote, unquote-splicing.
    Alle mit ihnen konstruierten Gebilde, lassen sich ohne große Umstände in ARS++ analog mit folgenden Syntaxelementen konstruieren:
    letrec while, quote, cons, append.


Ausbau von A++ in ARS++

Erste Ausbaustufe

  • Diese erste Ausbaustufe von ARS++ entspricht ganz grob: ARS + Scheme.
  • Die Erweiterung von A++ in Richtung ARS++ besteht ganz einfach aus der Übernahme vorgegebener Primitiv-Abstraktionen und vorgegebener Daten.
  • Die Primitivfunktionen wurden größtenteils aus der von Brent Benson freizügig zur Verfügung gestellten Bibliothek libscheme in zum Teil etwas abgeänderter Form übernommen.
  • Nicht übernommen wurde die Scheme-Makrotechnik in allen Varianten und mit allen Eigenschaften sowie einige Special-Forms.
  • Grundsätzlich ist es aber in ARS++ auch möglich Makros auf der Anwenderseite zu definieren.


Zweite Ausbaustufe

  • Netzwerkprogrammierung
  • Programmierung von Zugriffen auf eine Berkeley-Datenbank
  • Programmierung von Regulären Ausdrücken
  • POSIX-gemäße Ein-/Ausgabeprogrammierung


Während ARS++ in der ersten Ausbaustufe in die Nähe von Scheme rückte, erhält sie in dieser Ausbaustufe eine Funktionalität, die über Scheme hinausreicht.


Implementierung von ARS++

ARS++ ist eine Implementierung von A++ mit einer reichhaltigen Menge von Primitiv-Abstraktionen, wodurch die Funktionalität von Scheme nicht nur erreicht, sondern sogar überschritten wird. ARS++ steht für 'ARS + Scheme + Extensions'.


Die Implementierung von ARS++ basiert auf ARSAPI für C und schließt einen Compiler sowie einen Interpreter für den kompilierten Code ein.


Der Compiler ACOMP ist in Scheme geschrieben und erzeugt Code für eine virtuelle Maschine AVIM, die nach dem Vorbild der SECD-Maschine von J. Landin entworfen wurde.


In dem Scheme-Code des Compilers wurde auf Scheme-Besonderheiten verzichtet, so dass 'ACOMP' selbst-kompilierbar ist. Somit gibt es eine kompilierte Version des Compilers, die in der virtuellen Maschine 'AVIM' ausgeführt werden kann.


Der Compiler ACOMP

ACOMP kompiliert folgende Kategorien von Ausdrücken in Code für die virtuelle Maschine AVIM:


  • Konstanten
    • Zahlen
    • Zeichenketten
    • #t or #f
  • Symbole
  • Zitationen ('quote'-Ausdrücke)
  • Definitionen ('define'-Ausdrücke)
  • Zuordnungsanweisungen ('set!'-Ausdrücke)
  • Folgen von Ausdrücken ('begin'-Ausdrücke)
  • Erzeugung von Namensräumen ('let'-Ausdrücke)
  • einfache Alternativstrukturen ('if'-Ausdrücke)
  • Lambda-Abstraktionen
  • Makros
    Die folgenden Makros sind bereits in den Compiler eingebaut. Sie können nicht direkt in Maschinenbefehle übersetzt werden. Der Compiler muss sie zuerst in Basiskonstrukte expandieren.
    Benutzer können ihre eigenen Makros mit Hilfe der 'special form' 'defmacro' schreiben.
    • komplex-alternative Strukturen
      • allgemeine Auswahlstruktur ('cond'-Ausdrücke)
      • spezielle Auswahlstruktur ('case'-Ausdrücke)
    • Erzeugung eines Namensraumes mit lokalen rekursiven Prozeduren ('letrec'-Ausdrücke)
    • logische Summe (OR) ('or'-Ausdrücke)
    • logisches Produkt (AND) ('and'-Ausdrücke)
    • Wiederholungsstruktur
      • DOWHILE Struktur ('while'-Ausdrücke)
      • DO Konstrukt ('do'-Ausdrücke)
  • Synthesen (Applikationen)
    • allgemeine Funktionsaufrufe
    • call with current continuation
    • spezieller Funktionsaufruf ('apply'-Ausdrücke)


A++ - ARS++ - ARSAPI


Siehe auch:



Externe Links:



blättern» voriger Artikel | Hauptseite | nächster Artikel «blättern

Dieser Beitrag ist aus der XML-Version der deutschen WikiPedia® entwickelt worden und unterliegt inhaltlich den GNU FDL-Lizenzbestimmungen. Linkziele außerhalb der wikipedia-Inhalte unterliegen den Urheberrechten der jeweiligen Anbieter




Wörterbuch


Produkte
2000 Jahre
Chronik CD-ROM


Kalenderblatt in
Schmuckblatt
Ausführung


Geburtstags-Bios

Suchen/Google-Ads
Kalenderblatt
druckfertig
( DirectDownloads )
Kalenderblätter
druckfertig aufbereitet für Schmuckblätter
zum Selbstdrucken

im Word DOC6/RTF Format, je Euro 5
über Click&Buy
JAN | FEB | MÄRZ
APRIL | MAI | JUNI
JULI | AUG | SEPT
OKT | NOV | DEZ

Das Geschenk für jeden Anlass, nicht nur bei 'runden' Jubiläen
Andere Einzeltage
oder Zahlungsarten

bitte HIER bestellen


© 2000 ff by ICA-D, D-76751 Jockgrim, Germany
Verantwortlich im Sinne des Presse- und Multimedia-Rechts: Dipl.-Ing. Rainer Detering, Waidweg 18, 76189 Karlsruhe


| Immer | Unsere | InfoBitte weiterempfehlen
KALENDERBLATT von HEUTE | SUCH-Funktionen ALLE und nach BEREICHEN | Startseite
Welt-Chronik | Kunst-, Kultur-, Technik-Geschichte | Deutsche Chronik | 2000 Biografien | Bild-Datenbank
Gesetzestexte | SkateGuide | Online Jigsaw Puzzles | GeschenkTip | Produkte, Services, Impressum



*NEU* bei InfoBitte *NEU*



die deutsche WikiPedia
bei InfoBitte.de mit
650,000 Querverweisen zu
2000 Jahre Chronik



InfoBitte
Portal zu Portalen
Hauptseite


Suchfunktionen

Wissen, Biografien, Geschichte
besser gezielt suchen mit
domain-Filterung

die Links führen im neuen Fenster
zu den jeweiligen Hauptseiten,
das Anklicken eines Buttons zur
Filterung für die Google-Suche



Google
Lexika @ InfoBitte.de

ib InfoBitte.de (alle Lexika)
ib Universal-/Hand-Lexikon
die WikiPedia @ InfoBitte
ib L. WeltKunstGeschichte
ib L. Geteiltes Deutschland
ib L. Zweiter Weltkrieg

2000 Jahre Chronik

WeltChronik.de (Texte)
  
WeltChronik auf CDROM
deutsche Geschichte
Kultur-/TechnikGeschichte
WeltChronik Bilder
Chronik Biografien

Google
2000 Jahre Chronik
offline auf CDROM

Hier Kaufen


WeltChronik Jahr...
(eigene Suchfunktion)

Nur Zahl eingeben
Bereich: '0'-'2001'





Diese Web Site verdient ihr Geld durch Produktverkäufe (CD-ROM, downloads) und in erster Linie durch Anzeigen. Wenn Sie als Webmaster zuverlässige Partner suchen für Ihr eigenes Anzeigenschäft, dürfen Sie sich gerne auf unsere Empfehlungen stützen:
z.B.: GigaCash & ProfiWin