Programación estructural / visual

Históricamente, el desarrollo de software se ha realizado escribiendo texto sin formato. Durante varias décadas, el enfoque principal de la programación ha sido un conjunto secuencial de caracteres que deberían formar estructuras a un nivel superior al de estos personajes. El programador no solo tiene que escribir los mismos atajos de teclado una y otra vez, sino también monitorear el formato correcto del código; de lo contrario, la computadora simplemente se negará a comprender lo que está escrito en el código. Un carácter olvidado ";" puede dar errores de compilación / interpretación completamente ininteligibles. Además, el uso de la representación textual del programa no solo establece requisitos adicionales para la programación, sino que también limita severamente la capacidad del programador para escribir y usar código de manera eficiente.Además, la representación textual de la información complica enormemente el análisis de esta información mediante programación. Echemos un vistazo a un enfoque alternativo para escribir programas.






- 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

Tarjeta de memoria

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





Elegir colores para el menú.

, . – , , , . , , .





Delight

Lista de operadores

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





Descripción de nodos, widgets y menús
,

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





. , , . , , IDE .





№2

Actualmente, MetaIDE y Delight están en desarrollo y solo están disponibles como vista previa (ni siquiera como versión alfa). Lejos de todo se ha finalizado y no todas las cosas se hacen cómodamente. La escala de desarrollo es demasiado grande y no hay tiempo suficiente para resolver todos los detalles a la vez.





Amplia lista de tareas pendientes
Amplia lista de tareas pendientes

conclusiones

Por el momento, MetaIDE representa un enfoque completamente nuevo para la escritura de programas, abriendo nuevos horizontes para el programador en la organización de todo el flujo de trabajo. Ambos trabajan con el código como un todo y los aspectos individuales de la programación se simplifican enormemente.












All Articles