用于创建可视化编程语言的平台

时间:2010-02-20 12:59:05

标签: programming-languages

我有兴趣创建一种可以帮助非程序员(比如孩子)编写简单程序的可视化编程语言,就像Labview或Simulink允许工程师将功能块连接在一起而不知道它们是如何在内部构建的。这是通过演示编程吗?什么是示例应用程序? 什么是一个理想的平台,可以让我这样做(它可以是桌面或网络应用程序)

10 个答案:

答案 0 :(得分:7)

查看Google Blockly。 Blockly允许开发人员创建自己的块,翻译(生成器)到几乎任何编程语言(甚至是JSON / XML),并包括一个图形界面,允许最终用户创建自己的程序。

摘要:

  • Blockly受到App Inventor的影响,App Inventor本身是基于Scratch
  • App Inventor现在使用Blockly(?!)
  • BBC microbit也是如此。
  • Blockly本身在浏览器中运行(通常)使用javascript
  • 专注于(视觉)语言开发人员
  • 与语言无关的块和生成器
  • 包括一个块工厂 - 允许可视化编程创建新的块(?!) - 我自己没有找到这个有用的...除了理解
  • 包括将块映射到javascript / python的生成器

e.g。这些块: enter image description here

生成此代码: enter image description here

有关详细信息,请参阅https://developers.google.com/blockly/about/showcase

祝福 - 安迪

答案 1 :(得分:4)

您即将开始的冒险是visual programming language的设计和实施。我不知道这个领域有什么好的教科书,但有一个IEEE会议和审查期刊专门讨论这个领域。俄勒冈州立大学的玛格丽特·伯内特(Margaret Burnett)是一位备受尊敬的权威人士,他组建了bibliography on visual programming languages;我建议你从那里开始。

你可以考虑给伯内特教授写一些建议。如果你这样做,我希望你能在这里报告结果。

答案 2 :(得分:3)

受限制的编程形式是数据流(也就是基于流程的)编程,其中应用程序是通过连接 来构建组件 >。根据平台和目的,组件很简单(如路径选择器)或复杂(如图像变换器)。有几个数据流系统(我刚制作了两个),其中一些没有可视化编辑器,其中一些只是一个更大系统的一部分,还有一些甚至没有提到这种方法。 (你认为, make MS-Excel 和Unix Shell 管道是某种吗?)

所有基于数据流方法的现代数字合成器都有一个惊人的视觉示例:http://www.youtube.com/watch?v=0h-RhyopUmc

AFAIK,没有用于明确教育目的的数据流系统。有关详细信息,请访问以下网站:http://flowbased.org/start

答案 3 :(得分:3)

有一个新的开源库:TUM.CMS.VPLControl。得到它here。此库可作为您的目的的基础。

enter image description here

答案 4 :(得分:2)

麻省理工学院写的是Scratch,很像你想要的。

http://scratch.mit.edu/

答案 5 :(得分:1)

加州大学伯克利分校撰写Snap。理解VPL是另一种选择。

答案 6 :(得分:1)

请注意CoSpaces Edu。它是一个在线平台,可以创建虚拟世界和学习体验,同时为学习课程提供更灵活的方法。

视觉编码,名为“ CoBlocks ”。

enter image description here

学习者可以使用“ CoBlocks ”对自己的创作进行动画处理和编码,然后在移动VR中进行探索和共享。 也可以使用JavaScript或TypeScript。

答案 7 :(得分:0)

如果您想继续这样做,我建议的平台是用于实现Scratch的平台(已经做了你想要的,恕我直言),这是Squeak Smalltalk。 Squeak环境的设计考虑了可视化编程。它是免费的,Smalltalk语法可以在半小时内学会。学习巨大的类库可能需要更长的时间。

答案 8 :(得分:0)

对微比特的支持和开发最多的块编辑器是microsoft makecode

答案 9 :(得分:-1)

Scratch教授编程是一种可怕的语言(我有偏见,但请查看Pipes Visual Programming Language

您似乎想要做的事情听起来很像功能块编程(如功能块编程语言IEC 61499和其他用于机电一体化开发的VPL)。已经有很多关于VPL的研究,所以你可能想要确保A)你想要做的事情有观众和B)你想要做的事情可以轻松完成。

听起来有些消极,但是开始测试你想法的合理性的好地方是阅读Davor Babic在http://blog.davor.se/blog/2012/09/09/Visual-programming/的短篇博文

至于使用什么平台 - 你几乎可以使用任何东西,只要确保它有好的图形库(你可以使用Java和Swing - 如果你喜欢痛苦 - 或者使用TKinter的Python)只是取决于你熟悉的用。请记住,您最终要将语言发布到哪个(如果是iOS,那么请使用Objective-C等)。