Pemrograman struktural / visual

Secara historis, pengembangan perangkat lunak dilakukan dengan mengetik teks biasa. Selama beberapa dekade sekarang, pendekatan utama pemrograman telah menjadi sekumpulan karakter berurutan yang harus membentuk struktur pada tingkat yang lebih tinggi daripada karakter ini. Pemrogram tidak hanya harus mengetikkan pintasan keyboard yang sama berulang kali, tetapi juga untuk memantau pemformatan kode yang benar, jika tidak komputer akan menolak untuk memahami apa yang tertulis di kode. Satu karakter yang terlupakan ";" dapat memberikan kesalahan kompilasi / interpretasi yang sama sekali tidak dapat dipahami. Selain itu, penggunaan representasi tekstual dari program tidak hanya menetapkan persyaratan tambahan untuk pemrograman, tetapi juga sangat membatasi kemampuan programmer untuk menulis dan menggunakan kode secara efektif.Juga, representasi tekstual dari informasi sangat memperumit analisis informasi ini secara terprogram. Mari kita lihat pendekatan alternatif untuk menulis program.






- 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

Kartu memori

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





Memilih warna untuk menu

, . – , , , . , , .





Delight

Daftar operator

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





Deskripsi node, widget dan menu
,

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





. , , . , , IDE .





№2

Saat ini MetaIDE dan Delight sedang dalam pengembangan dan hanya tersedia sebagai pratinjau (bahkan bukan sebagai versi alfa). Jauh dari semuanya telah diselesaikan dan tidak semua hal dibuat dengan nyaman. Skala pengembangan terlalu besar dan tidak cukup waktu untuk mengerjakan semua detail sekaligus.





Daftar tugas yang luas
Daftar tugas yang luas

kesimpulan

Saat ini, MetaIDE mewakili pendekatan yang benar-benar baru untuk menulis program, membuka cakrawala baru bagi programmer dalam mengatur seluruh alur kerja. Keduanya bekerja dengan kode secara keseluruhan dan aspek individual pemrograman sangat disederhanakan.












All Articles