Strukturelle / visuelle Programmierung

In der Vergangenheit wurde die Softwareentwicklung durch Eingabe von einfachem Text durchgeführt. Seit mehreren Jahrzehnten besteht der Hauptansatz für die Programmierung in einem sequentiellen Satz von Zeichen, die Strukturen auf einer höheren Ebene als diese Zeichen bilden sollten. Der Programmierer muss nicht nur immer wieder dieselben Tastaturkürzel eingeben, sondern auch die korrekte Formatierung des Codes überwachen, da der Computer sonst einfach nicht versteht, was im Code geschrieben steht. Ein vergessenes Zeichen ";" kann zu völlig unverständlichen Kompilierungs- / Interpretationsfehlern führen. Darüber hinaus stellt die Verwendung der Textdarstellung des Programms nicht nur zusätzliche Anforderungen an die Programmierung, sondern schränkt auch die Fähigkeit des Programmierers, Code effektiv zu schreiben und zu verwenden, stark ein.Auch die textuelle Darstellung von Informationen erschwert die programmatische Analyse dieser Informationen erheblich. Schauen wir uns einen alternativen Ansatz zum Schreiben von Programmen an.






- MetaIDE. / . ( for, if, while) , . - , . , AST - Abstract syntax tree ( ). MetaIDE AST, .





. , MetaIDE : wh while, fo for .. , . , , , , . . . , IDE . , , . . , .. , - () VR. - , - .





Scratch, UML, Unreal Engine
Scratch, UML, Unreal Engine

, . , (Scratch, Blockly), (UML, ), (blueprints - Unreal, Unity). MetaIDE . .





, . , , -, .





. , . (enum) . - , . - ( ), ( ), ( " " ).





. MetaIDE ( ), - , . (, , ), , . , . . , , . , . MetaIDE . . , .





MetaIDE MVC (Model-View-Controller, --) . . , ( , , ) , - . , , .





- ( ), , . . .





MetaIDE , IDE, . . , IDE IDE - ( SDK API, ).





, DSL

fix code main table
	name: varLocal node: var get local fn: varLocal switch: ndPtr
	name: varMember node: var get member fn: varMember switch: ndPtr
	name: varGlobal node: var get global fn: varGlobal switch: ndPtr
	name: varUnkn node: var unknown fn: varUnkn switch: ndPtr
	
	name: call node: call fn fn: call switch: ndPtr
	name: inline node: inlineCall fn: inline switch: ndPtr
	
	name: subClass node: getSubClass fn: subClass switch: ndPtr
	name: subNode node: var get subnode fn: subNode switch: ndPtr
	
	name: nextFn node: nextFn fn: nextFn switch: ndPtr
      
      



, , , enum, , .. . , , , . , - . . , . MetaIDE - DSL ( UI) , . .





IDE

Speicherkarte

MetaIDE , . MetaIDE ( ) - (mind map), (outliner), ( HSB, LCH, HSLuv, HPLuv). , MetaIDE, , , (undo/redo) . ( git), , .





Farben für das Menü auswählen

, . – , , , . , , .





Delight

Liste der Operatoren

MetaIDE Delight. ++, , - ( ), .





Beschreibung von Knoten, Widgets und Menüs
,

MetaIDE. Lazarus, . , . , . , ( , ). , , . , . Delight, – , Delight. ( ), . IDE Delight. , - . . , , , . . , . , , Delight - . . MetaIDE Delight - , .





. , , . , , IDE .





№2

Derzeit befinden sich MetaIDE und Delight in der Entwicklung und sind nur als Vorschau verfügbar (nicht einmal als Alpha-Version). Weit davon entfernt, dass alles abgeschlossen ist und nicht alle Dinge bequem gemacht werden. Der Entwicklungsumfang ist zu groß und es bleibt nicht genügend Zeit, um alle Details auf einmal zu erarbeiten.





Umfangreiche Aufgabenliste
Umfangreiche Aufgabenliste

Schlussfolgerungen

Derzeit stellt MetaIDE einen völlig neuen Ansatz für das Schreiben von Programmen dar und eröffnet dem Programmierer neue Horizonte bei der Organisation des gesamten Workflows. Beide arbeiten mit dem Code als Ganzes und einzelne Aspekte der Programmierung werden stark vereinfacht.












All Articles