Я заинтересован в создании визуального языка программирования, который может помочь не программистам (например, детям) писать простые программы, так же как Labview или Simulink позволяет инженерам подключать функциональные блоки вместе, не зная, как они встроены. Это называется программированием демонстрацией? Каковы примеры приложений? Что было бы идеальной платформой, которая может позволить мне сделать это (это может быть рабочий стол или веб-приложение).
Платформа для создания визуального языка программирования
Ответ 1
Зайдите в Google Blockly. Блочно позволяет разработчику создавать свои собственные блоки, переводы (генераторы) практически на любой язык программирования (или даже JSON/XML) и включает графический интерфейс, позволяющий конечным пользователям создавать свои собственные программы.
Краткое резюме:
- На Blockly повлияло приложение Inventor, которое было основано на Scratch
- App Inventor теперь использует Blockly (?!)
- Итак, микробит BBC
- Само блокируется в браузере (обычно) с помощью javascript
- Ориентированные на (визуальные) разработчики языка
- независимые от языка блоки и генераторы
- включает в себя блок Factory - который позволяет визуальному программированию создавать новые блоки (?!) - я сам не нашел это полезным... кроме понимания
- включает генераторы для отображения блоков в javascript/python
Подробнее см. https://developers.google.com/blockly/about/showcase
С наилучшими пожеланиями - Энди
Ответ 2
Приключение, на котором вы собираетесь встать, - это дизайн и реализация визуального языка программирования . Я не знаю хороших учебников в этой области, но есть конференция IEEE и реферированный журнал, посвященный этой области. Маргарет Бернетт из Университета штата Орегон, которая является высоко оцененной властью, собрала библиографию на языках визуального программирования; Я предлагаю вам начать там.
Вы можете посоветоваться с профессором Бернеттом. Если вы это сделаете, я надеюсь, вы сообщите о результатах здесь.
Ответ 3
Ограниченная форма программирования - это потоковое (информационное) программирование потока данных, где приложение построено из компонентов путем подключения их портов. В зависимости от платформы и назначения компоненты просты (например, селектор путей) или сложны (например, преобразователь изображений). Существует несколько систем обработки данных (только я сделал два), некоторые из них не имеют визуального редактора, некоторые из них просто являются частью более крупной системы, и есть некоторые, которые даже не упоминают о подходе. (Как вы думаете, что делать, MS-Excel и Unix Shell-трубы - это что-то вроде этого?)
Все современные цифровые синтезаторы, основанные на подходе к потоку данных, показывают удивительный визуальный пример: http://www.youtube.com/watch?v=0h-RhyopUmc
AFAIK, нет системы потока данных для определенных образовательных целей. Для получения дополнительной информации вы должны проверить этот сайт: http://flowbased.org/start
Ответ 4
Существует новая библиотека с открытым исходным кодом: TUM.CMS.VPLControl. Получите здесь. Эта библиотека может служить основой для ваших целей.
Ответ 5
Есть Scratch, написанный MIT, который очень похож на то, что вы ищете.
Ответ 6
Существует Snap, написанный UC Berkeley. Это еще один вариант для понимания VPL.
Ответ 7
Если вы хотите продолжить это, платформа, которую я предлагаю, является той, которая используется для реализации Scratch (которая уже делает то, что вы хотите, IMHO), которая Squeak Smalltalk. Среда Squeak была специально разработана с визуальным программированием. Это бесплатно, и синтаксис Smalltalk можно узнать за полчаса. Изучение гигантской библиотеки классов может занять немного больше времени.
Ответ 8
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 - если вам нравится боль - или Python с TKinter), просто зависит от того, что вам знакомо с. Просто имейте в виду, кому вы хотите в конечном итоге запустить язык (если его iOS, а затем посмотрите на Objective-C и т.д.)