Dies ist eine alte Version des Dokuments!


Ideen zum Sprachdesign

Todo

  • Marker„klassen“ (Wurzel, Knoten, Blatt is DOMElement, wobei DOMElement keine Elemente hat, sondern nur Tag/Marker ist)
  • Eheklassen (GFXElement contains GFXPosition, GFXOutput): Klassen, die von GFXPosition und GFXOutput erben, müssen erklären, was passiert, wenn der Punkt GFXPosition verändert wird (z.B. GFXOutput zum Neuzeichnen informieren). Auch wenn „GFXPosition is Point“ ist, hat dieser Point, der mit GFXOutput kombiniert wird nun zwangsweise Setter, die GFXOutput kennen und eine Funktion aufrufen, die GFXPoint und GFXOutput übergeben bekommen. (vgl. Rules)
  • Lässt sich die Frage nach dem Warum? als ein Konzept beschreiben und abprüfen?
  • Strategy: Fast oder Safety. Fast erlaubt undefined behaviour, Safety nicht.

Funktionalität

Environment

Funktionen

Funktionsdefinition

Implementiert Beschreibung siehe auch
✗ Declaration
✗ precall
✗ autofunc (Mini-Templates, Textabkürzungen)
✗ factory Produziert etwas, ändert aber nicht den Programmauflauf
✗ enhance Erweitere Funktionalität von Objekten
✗ fix Konditional - abschaltbar
✗ infix Infix-Operatoren selbst gestalten
✗ xmlconstruct XML-Notation für Konstruktoren
✗ unimplemented null-Rückgabewert für nicht implementierte Funktionen
✗ inline Code, der inline verarbeitet wird
✗ guard guard für Funktionen, die per fail verlassen wurden
✗ assert Annahme, die zur Laufzeit geprüft wird
✗ move move-Konstruction
✗ lazy lazy parameter
✗ forward forward parameter
✗ adapter adapter/workflow-Funktionen
✗ workflow workflow als failabfrage
✗ template template-Funktionen
✗ use anonyme Funktion (use x, y {})
✗ comfort point() comforts Point( this );

Operatoren

Implementiert Beschreibung siehe auch
✓ env path = $(PATH);
✗ power A = Pi * r**2
✗ inequality a <> b
✗ condition a ⇒ b; a ⇒ b ! c
✗ stringformat „Hello %s“ % „World“
✗ value dp is double ptr; dp# : 3.1415
✗ split „1,2,3“ / „,“ ⇒ [&„1,2,3“,&„2,3“,&„3“]
✗ or var1 or var2
✗ construct construct winbmp { .. }
✗ prefix +(1,2,3)
✗ guard guard func();
✗ include include „file“;
✗ require require de.xsd.bitmap;
✗ is val is int
✗ eq add is code( a = 1, b = lastresult() )
✗ to castings
✗ as castings
✗ from castings
✗ definition Identifier definitions
✗ iterable iterable
✗ arrow →
✓✓✗ do 5..8 do print value;
✗ matrix 2d if;
✗ react 5..8 react print value;
✗ switch
✗ autoref
✗ net Neuronale Netzwerke
✗ par Appendix-Parallel-Operator
✗ notes Arithmethisches Mittel (aus Liste)
✗ notes Liste sortieren
✗ notes Duplikate entfernen
✗ set Mengen- und -operationen (map, filter, reduce)
✗ if if

Speichermanagement

Schnittstellen

Implementiert Beschreibung Stichwörter
✗ interface
✗ scope
✗ set bei Funktionen

Datentypen / Klassen

Implementiert Beschreibung Stichwörter
✗ Sets set is int[] unique
✗ array classes listet classes
✗ construct as new Rectangle( SourcePoint sp, TargetPoint tp ) { sp.x = x+offset; sp.y = y+offset; }
✗ view view( source )
✗ override overrides bei Mehrfachvererbung
✗ autoinit i $: new int(5);
✗ logical ehemals inquiry (true, false, null, unknown/empty)
✗ Teapot t is teapot;
✗ test t is test;
✗ reflection r is reflection;
✗ io file is io( "json://test.c" );
✗ element html is element("html")
✗ subarrays print "Hallo Welt"[ 6..11 ]
✗ typelist construct( parameters of( char const *, string )[]
✗ identifier id is identifier : "main";
✗ abstract id is abstract int;
✗ StructOfArrays
✗ state state a.size > 2;
✗ validate/guarantee
✗ implements
✗ Aufbau einer Klasse
✗ Enumerations
✗ configurable
✗ profile
✗ mutable inheritance Person contains mutable Age
✗ absrel a is int abs;
✗ property a is int property( getInt, setInt );
✗ persistant a is int persistant( system.homepath/".mysoftware-config" );
✗ persist return persist Value(1);

Attribute

Implementiert Beschreibung Stichwörter
✗ attribute Direction is valid
✗ uninitialized hund is uninitialized Hund
✗ replaces MyString replaces string
✗ constrains add is code( a, b ) noheap
✗ abstract, deprecated foo is deprecated code

Generics / Templates

Implementiert Beschreibung Stichwörter
✗ for toString is code for Point3d

Mitzuliefernde Funktionalität / Standard-Lib

Implementiert Beschreibung Stichwörter
✗ context Kontexte
✗ cloud cloud
✗ list Listen

Parsen

Dokumentation

Implementiert Beschreibung Stichwörter
✗ warning Warnungen
✗ sic sic
✗ section section Preparation {}
✗ remark remark

Genesys as Service/Shared Object

Implementiert Beschreibung Stichwörter
✗ inject external Functions and Values

Ini-File

Implementiert Beschreibung Stichwörter
✗ forbid Warnungen

Test

Implementiert Beschreibung Stichwörter
✗ record record and replay

Codegenerierung

✗ emit (Codegenerierung)
✗ make makefiles

Connect