Kevin K. schrieb:
Pointer-Programmierung wie in C wird prinzipiell auch möglich sein, nur eher im Hintergrund, denn ich habe mir da ein gutes Verfahren ausgedacht:
Bei einer Variablenübergabe an eine Funktion geht die IDE automatisch von schreibgeschützten (const) Referenzen (&) auf Objekte aus. Hierzu muss der Funktion nur ein Zeiger auf den Speicherbereich, an dem das Objekt liegt, mitgegeben werden (Aufwand: Kopieren eines Prozessorwortes, i.d.R. 32 Bit auf einem 32Bit Prozessor). Da die Variable schreibgeschützt ist, können auch problemlos Literale und Konstanten übergeben werden, da diese aus Prinzip nicht verändert werden dürfen. Diese Konvention deckt denke ich mal 70-80% aller Parameterübergaben ab. Wenn der Programmierer unbedingt eine Kopie oder eine schreibbare Referenz haben möchte, gibt er dies explizit an. Desweiteren werden Objekte die weniger oder genau so groß sind wie die Wortbreite des Prozessors, wie zB. Ganzzahlen, direkt auf den Stack geschrieben, was auch der üblichen Konvention entspricht, da sie eh nicht als dynamische Objekte behandelt werden, sondern nur zur Übergabe von Einzelwerten benutzt werden.
Schau dir hierzu doch mal Wertparameter (call by value) [de.wikipedia.org/wiki/Wertparameter] und Referenzparameter (call by reference) [de.wikipedia.org/wiki/Referenzparameter] an. Übergibst du einen Zeiger auf ein Objekt sind damit die Eigenschaften des Objektes nicht schreibgeschützt, selbst wenn du die Adresse als Konstante oder Literal übergibst.
Kevin K. schrieb:
Die IDE an sich soll sehr modular aufgebaut sein, heißt nur wenige bis gar keine fest eingebauten Konstrukte haben, die Sprache soll von Grund auf aus Erweiterungen bestehen, die man auch selber erstellen kann. Das Allgemeinste was es gibt ist das Objekt. Ein Objekt represetiert einfach nur einen Speicherbereich, der nach einem festgelegten Muster aufgebaut ist, bspw. eine Zahl, eine Funktion, ein String. Auf alle diese Speicherbereiche kann mit bestimmten Funktionen zugegriffen werden, die so oder so als ersten Parameter eine Referenz auf das zu bearbeitende Objekt benötigen, also Methoden. Fertig ist die Objektorientierte Programmierung, die auf alles anwendbar ist, und da auf jeglichen Overhead verzichtet wird, bis er benötigt wird, kann man somit die gleiche Performance erreichen, wie mit einem komplizierten C-Programm, welches nur aus losen Structs und Funktionen besteht.
Fertig ist die Objektorientierte Programmierung damit noch lange nicht. Siehe dazu de.wikipedia.org/wiki/Objektorientierte_Programmierung. Was ist denn z.B. mit Polymorphie und Vererbung die nun mal zentrale Bestandteile der OOP sind?