Kids' Programming Language
Inhalt

Sprachreferenz

Konzepte, die KidsPL nicht unterstützt*

Zuletzt soll noch auf Sprachkonzepte eingegangen werden, die es in anderen (objektorientierten) Sprachen gibt, aber die von KidsPL nicht unterstützt werden. Auf diese Konzepte wurde beim Sprachentwurf explizit verzichtet, da sie KidsPL deutlich komplizierter gemacht hätten.

Einfache Datentypen

Der Vorteil einfacher Datentypen liegt insbesondere im Geschwindigkeitsvorteil gegenüber der Verarbeitung von Objekten. Damit nicht von Anfang an zwei widersprüchliche Konzepte erlernt werden müssen, nämlich einfache und objektorientierte Typen, gibt es in KidsPL ausschließlich objektorientierte Typen. Wie aber schon bekannt ist, gibt es für die Objekte von den Klassen Zahl, Text, Kommazahl und Bool eine vereinfachende Syntax zum Erzeugen dieser Objekte als auch zusätzliche Operatoren.

Deklarationen

Es können in KidsPL keine reinen Deklarationen vorgenommen werden, d.h. Anweisungen, die einem Bezeichner einen Typ, aber keinen Wert zuweisen. Trotzdem ist KidsPL eine vollständig typensichere Sprache: Die Deklaration in KidsPL geschieht automatisch, wenn einem Bezeichner ein Wert zugewiesen wird. Bezeichner bleiben an den Typ dieses Wertes gebunden. In Funktionsköpfen werden in der gleichen Weise durch die Zuweisung von Vorgabewerten die Typen der Parameter bestimmt.

Zeiger

Da in KidsPL keine Deklarationen ohne Definition erlaubt sind, können in KidsPL keine Laufzeitfehler durch leere Referenzen (so genannte "null pointer exceptions") auftreten. Es gibt in KidsPL aus vielerlei Gründen keine Möglichkeit die Speicheradressen von Objekten, so genannte Zeiger (engl. pointer), zu manipulieren.

Erweiterte objektorientierte Konzepte

In KidsPL gibt es keine Mehrfachvererbung, keine Interfaces und keinen inneren und sogenannte Adapter-Klassen. Außerdem können keine Operatoren definiert werden. Diese Konzepte hätten der Sprache unnötige Komplexität verliehen und sie dadurch weniger leicht verständlich gemacht.

Typenumwandlung und Polymorphie

Es gibt in KidsPL keine Möglichkeit einen Typ (d.h. eine Klasse) in einen anderen umzuwandeln (casting). Eine Umwandlung von z.B. Zahlen zu Text ist aber indirekt über die Methoden der Objekte möglich. Zusätzlich nehmen auch einige Operatoren (+,-,*,/) solche Umwandlungen vor. Des Weiteren gibt es auch keine Möglichkeit Objekte an den Typ einer ihrer Elternkassen zu binden (Polymorphie). Letzteres Konzept bildet zwar ein mächtiges Werkzeug, gehört aber auch zu den komplexeren Methodiken der objektorientierten Programmierung und wird erfahrungsgemäß zunächst als verwirrend empfunden, da der Typenbegriff dadurch stark erweitert wird. Nach Abwägung der Vor- und Nachteile wurde auf Polymorphie in KidsPL verzichtet.

Jetzt kostenlos herunterladen.
Diese Seite ausdrucken.
Diese Seite speichern.