Programação estrutural / visual

Historicamente, o desenvolvimento de software foi feito digitando texto simples. Por várias décadas, a abordagem principal da programação tem sido um conjunto sequencial de caracteres que devem formar estruturas em um nível superior ao desses caracteres. O programador não deve apenas digitar os mesmos atalhos de teclado repetidamente, mas também monitorar a formatação correta do código, caso contrário, o computador simplesmente se recusará a entender o que está escrito no código. Um personagem esquecido ";" pode produzir erros de compilação / interpretação completamente vagos. Além disso, o uso da representação textual do programa não apenas define requisitos adicionais para a programação, mas também limita severamente a capacidade do programador de escrever e usar código com eficiência.Além disso, a representação textual das informações complica muito a análise dessas informações de forma programática. Vamos dar uma olhada em uma abordagem alternativa para escrever 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

Cartão de memória

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





Escolha de cores para o menu

, . – , , , . , , .





Delight

Lista de operadoras

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





Descrição de nós, widgets e menus
,

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





. , , . , , IDE .





№2

Atualmente MetaIDE e Delight estão em desenvolvimento e estão disponíveis apenas como uma prévia (nem mesmo como uma versão alfa). Longe de tudo foi finalizado e nem todas as coisas são feitas convenientemente. A escala de desenvolvimento é muito grande e não há tempo suficiente para resolver todos os detalhes de uma vez.





Extensa lista de tarefas
Extensa lista de tarefas

conclusões

No momento, MetaIDE representa uma abordagem completamente nova para escrever programas, abrindo novos horizontes para o programador na organização de todo o fluxo de trabalho. Ambos trabalham com o código como um todo e os aspectos individuais da programação são bastante simplificados.












All Articles