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

12

我有兴趣创建一种视觉化编程语言,可以帮助非程序员(比如孩子)编写简单的程序,就像Labview或Simulink让工程师连接功能块一样,而不需要知道它们内部是如何构建的。这是否称为“演示式编程”?有哪些应用示例? 有什么理想的平台可以让我做到这一点(可以是桌面或Web应用程序)


1
已经完成 - 请查看Scratch网站:http://scratch.mit.edu。"平台"是什么意思? - anon
3
有数十种可视化编程语言。请勿再发明一种,而是学习已经存在的一种。http://en.wikipedia.org/wiki/Visual_programming_language。这里提供了一个网站,您可以在该网站上找到一些流行的可视化编程语言来学习:http://www.p4games.org/。 - S.Lott
1
在开始之前,请阅读论文《软件工程的本质和意外》。 - Don Reba
通过平台,我想知道可以构建可视块和模型的创作环境的作者是谁。 - iceman
感谢Don的建议...这也是我向有经验的开发人员寻求建议的原因 - iceman
10个回答

9
请查看Google Blockly。Blockly使开发人员能够创建自己的块,翻译(生成器)到几乎任何编程语言(甚至是JSON / XML),并包括图形界面,以允许最终用户创建自己的程序。
简要概述:
- Blockly受App Inventor的影响,而App Inventor本身基于Scratch - 现在App Inventor使用Blockly(?!) - BBC microbit也是如此 - Blockly本身在浏览器中运行(通常使用JavaScript) - 专注于(视觉)语言开发人员 - 独立于语言的块和生成器 - 包括一个块工厂 - 它允许可视化编程创建新块(?!) - 我自己没有发现这很有用...除了理解 - 包括将块映射到JavaScript / Python的生成器
例如,这些块: enter image description here 生成了这段代码: enter image description here

请参考https://developers.google.com/blockly/about/showcase了解更多详情。

祝一切顺利 - Andy


来到这里的目的与原贴作者略有不同,你的回答正是我想要的。谢谢! - ibiwan

4
你即将开始的冒险是设计和实现可视化编程语言。我不知道这个领域有什么好的教科书,但是IEEE会议和评审期刊致力于这个领域。来自俄勒冈州立大学的Margaret Burnett是一位备受推崇的权威人士,她已经编制了可视化编程语言的参考书目;我建议你从那里开始。你可以考虑给Burnett教授写信寻求建议。如果你这样做了,希望你能在这里报告结果。

谢谢指出。我正在尝试为机器人应用程序构建它,以便人们不必深入了解机器人API。微软有一个,但是... - iceman

3

有一个新的开源库出现了:TUM.CMS.VPLControl。您可以从这里获取它。该库可能成为您用途的基础。

enter image description here


3

3
一种受限制的编程形式是数据流(也称为流程型)编程,应用程序由组件通过连接它们的端口构建。根据平台和目的,组件可以是简单的(如路径选择器)或复杂的(如图像转换器)。有几个数据流系统(我已经做了两个),其中一些没有可视化编辑器,一些只是更大系统的一部分,还有一些甚至没有提到这种方法。(你是否认为make,MS-Excel和Unix Shell管道是这种类型的一种?)
所有现代数字合成器都基于数据流方法,这里有一个惊人的可视化示例:http://www.youtube.com/watch?v=0h-RhyopUmc 据我所知,目前没有专门用于教育目的的数据流系统。欲了解更多信息,请查看此网站:http://flowbased.org/start

2

Snap这个由加州大学伯克利分校编写的工具,也是了解可视化程序设计语言的另一个选择。


1
请注意 CoSpaces Edu。它是一个在线平台,可以创建虚拟世界和学习体验,同时提供更灵活的学习课程。
有一个名为“CoBlocks”的可视化编程工具。

enter image description here

学习者可以在移动VR中探索和分享他们的创作,使用“CoBlocks”进行动画和编码。同时也可以使用JavaScript或TypeScript。

0

如果您想继续进行此操作,我建议使用实现Scratch的平台(在我看来,它已经实现了您想要的功能),即Squeak Smalltalk。Squeak环境是专门为可视化编程而设计的。它是免费的,学习Smalltalk语法只需要半小时。学习庞大的类库可能需要更长一点时间。


“只有?”早在1980年,“蓝皮书”的3/4都用于类库,只有1/4用于语言。那么Squeak类库有多大呢?是10倍?100倍? - Norman Ramsey
@Norman 你听说过温和的讽刺吗?Squeak库非常庞大(或者就像我在回答中所说的那样,你似乎匆忙阅读了我的回答,“巨大”),相比之下,它需要更长的时间来适应,特别是与非常简单的ST语法相比。 - anon
@Neil:确实。我原本想留下一个评论只说“仅仅?”但可惜这少于字符限制... 简洁是智慧的灵魂,毕竟。 :( - Norman Ramsey
2
再次强调,我对外部存在的各种可视化编程语言及其优缺点不是非常感兴趣,而是关注如何编写它们!例如,我喜欢Labview,但很想知道他们如何处理异步数据流。 - iceman
@iceman 他们使用消息和线程。像Squeak这样的平台比其他平台更容易实现这一点。你熟悉哪些编程语言? - anon
我熟悉C、Java和Python。 - iceman

0

对于microbit而言,最受支持和开发的编程块编辑器是microsoft makecode


-1

Scratch是一种糟糕的编程语言(我有偏见,但可以看看Pipes可视化编程语言)。

你似乎想要做的事情听起来很像函数块编程(如IEC 61499和其他机电一体化开发的功能块编程语言)。已经有很多关于可视化编程语言的研究,所以你可能需要确保A)你正在尝试的内容有受众,B)你正在尝试的内容可以轻松完成。

虽然语气有点消极,但测试你的想法的一个好方法是阅读Davor Babic在http://blog.davor.se/blog/2012/09/09/Visual-programming/上的简短博客文章。

至于使用哪个平台 - 你可以使用几乎任何东西,只要它有良好的图形库(如果你喜欢痛苦,可以使用带有Swing的Java或带有TKinter的Python),这取决于你熟悉哪个。只需记住,最终要将语言发布给谁(如果是iOS,则应考虑使用Objective-C等)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接