Privacy Policy Cookie Policy Terms and Conditions A++ (Programmiersprache) - Wikipedia

A++ (Programmiersprache)

aus Wikipedia, der freien Enzyklopädie

Dieser Artikel wurde zur Löschung vorgeschlagen. Über die Löschung wird nach sieben Tagen entschieden. Wenn du meinst, dass dieser Artikel nicht gelöscht werden sollte, beteilige dich bitte an der Löschdiskussion. Während dieser Zeit ist es natürlich möglich, den Artikel zu erweitern und zu verbessern.

Falls du einer der Autoren des Artikels bist, lies dir bitte vorher Wikipedia:Was bedeutet ein Löschantrag durch und entferne den Löschantrag keinesfalls eigenmächtig.

Grund des Löschantrags: Reklamespam. siehe Löschdisk im Zusammenhang, das ist ein ganzer Zoo von Werbeartikeln. Weissbier 13:50, 6. Dez. 2006 (CET)

A++ ist eine minimalistische, interpretierte Programmiersprache. Ihr einziger Zweck ist es, an der Programmierung Interessierten zu helfen, so schnell und effizient wie nur möglich das Wesentliche der Programmierung zu erfassen.

In kaum einer der in einführenden Kursen üblicherweise benutzten Programmiersprachen werden Lernende gezwungen sich mit dem Wesentlichen der Programmierung so intensiv auseinanderzusetzen wie in A++.

Der Vorteil dieses rigorosen Vorgehens besteht darin, dass in kurzer Zeit Denkmuster eingeübt werden, die einen befähigen, sich müheloser in die großen populären Programmiersprachen einzuarbeiten und in diesen in kurzer Zeit produktiv zu werden.

Inhaltsverzeichnis

[Bearbeiten] Ursprung

A++ ist aus dem Lambda-Kalkül von Alonzo Church entstanden.

Der Name A++ ist eine Abkürzung von "Abstraktion plus Referenz plus Synthese". Hiermit werden die drei Prinzipien von A++ benannt, die gleichzeitig ihr einziger Inhalt sind.

Diese Prinzipien stellen eine Verallgemeinerung der Grundoperationen des Lambda-Kalküls dar.

[Bearbeiten] Verallgemeinerung des Lambda-Kalküls

Ausgehend von den Grundoperationen des Lambda-Kalküls gelangen wir durch einen Schritt der Verallgemeinerung zu den drei Primitivoperationen von A++.

Der Schritt der Verallgemeinerung besteht darin, dass den Primitivoperationen von A++ jedwede Einschränkung genommen wird:

  • Abstraktion: Etwas einen Namen geben
  • Referenz: Auf etwas mit seinem Namen Bezug nehmen
  • Synthese: Aus zwei oder mehr Dingen etwas Neues erzeugen

In A++ ist im Begriff der Abstraktion eine explizite Namensvergabe an jeder beliebigen Stelle in einem Programm erlaubt.

Im Lambda-Kalkül dagegen ist nur eine implizite Namensvergabe im Zusammenhang mit einer Synthese von Lambda-Ausdrücken vorgesehen.

Die Auswirkungen dieses zunächst als klein erscheinenden Unterschiedes sind gewaltig:

  • Während ein Ausbau des Lambda-Kalküls immer in die Funktionalen Programmiersprachen mündet,
  • können in A++ gleich drei Programmierparadigmen zum Ausdruck gebracht werden, nämlich das funktionale, das objektorientierte und das imperative Programmierparadigma.

[Bearbeiten] Konstitutive Prinzipien

Die o.g. Begriffe Abstraktion, Referenz und Synthese entsprechen den sprachlichen Strukturelementen und den Grundoperationen in A++. Weiterhin gehören wesentlich in diese Liste "Closure" und "Lexical Scope".

[Bearbeiten] Weitere Eigenschaften

Elementarteilchen der Programmierung 
In A++ werden die Elementarteilchen der Programmierung in reinster Form sichtbar gemacht. Man kann sie gründlich studieren und den richtigen Umgang mit ihnen einüben.
Programmierung wird vereinfacht 
Energien, die in den meisten Sprachen für die Beherrschung und das Einhalten der Syntax aufgebracht werden müssen, kommen in A++ der wichtigeren Aufgabe der logischen Bewältigung des zu lösenden Problems zugute.
A++ bietet Denkmuster an 
Das Denken wird aus den Niederungen des komplexen Regelwerks einer bestimmten Programmiersprache herausgeholt und heraufgehoben auf die Höhen eines einfacheren, umfassenderen und deshalb mächtigeren Denkens.

[Bearbeiten] Zusammenfassung der Eigenschaften von A++

  • konstitutive Prinzipien von A++:
    • ARS (grundlegende Operationen: Abstraktion, Referenz, Synthese)
    • Lexical Scope, Closure
  • unterstützte Paradigmen der Programmierung:
    • funktionale Programmierung, (das Schreiben von auszuwertenden Ausdrücken),
    • objekt-orientierte Programmierung, (das Senden von Botschaften an Objekte),
    • imperative programming, (das Schreiben von auszuführenden Anweisungen), einschließlich der strukturierten Programmierung.
    • logische Programmierung, (regel-basierte Programmierung) (hier empfiehlt sich jedoch ARS++)
  • aus ARS direkt abgeleitete Eigenschaften:
    • logische Abstraktionen, (true, false, if, not, and, or),
    • numerische Abstraktionen (natural numbers, zerop, succ, pred, add, sub, mult),
    • relationale Abstraktionen, (equalp, gtp, ltp, gep)
    • Rekursion,
    • die Erzeugung und Verarbeitung von Listen (cons, car, cdr, nil, nullp, llength, remove, nth, assoc),
    • Funktionen höherer Ordnung, (compose, curry, map, mapc, map2, filter, locate, for-each),
    • Mengenoperationen (memberp, union, addelt),
    • iterative Programmstruktur, ('while'),
    • Entwicklung von Anwendungen wie einfache Kontenverwaltung und Bibliotheksverwaltung.

[Bearbeiten] Weblinks

[Bearbeiten] Siehe auch

ARS-basierte Programmierung, ARSAPI, Programmiersprachen zu Ausbildungszwecken

Andere Sprachen

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -