2010-02-20 6 views
10

Я заинтересован в создании визуального языка программирования, который может помочь не программистам (например, детям) писать простые программы, так же как Labview или Simulink позволяет инженерам подключать функциональные блоки вместе без знания как они внутренне построены. Это называется программированием демонстрацией? Каковы примеры приложений? Что было бы идеальной платформой, которая может позволить мне сделать это (это может быть рабочий стол или веб-приложение)Платформа для создания визуального языка программирования

+0

Вы слышали о _Logo_ (_http: //en.wikipedia.org/wiki/Logo_%28programming_language%29_)? – stakx

+1

Уже сделано - см. Scratch на http://scratch.mit.edu. и что вы подразумеваете под «платформой»? – 2010-02-20 13:02:20

+3

Есть десятки визуальных языков программирования. http://en.wikipedia.org/wiki/Visual_programming_language. Пожалуйста, не изобретайте другого. Просто изучите тот, который уже существует. http://www.p4games.org/ –

ответ

0

Если вы хотите, чтобы идти вперед с этим, платформа, на которой я предлагаю это один используется для реализации Царапины (который уже делает то, что вы хотите, ИМХО), который Squeak Smalltalk. Среда Squeak была специально разработана с визуальным программированием. Это бесплатно, и синтаксис Smalltalk можно узнать за полчаса. Изучение гигантской библиотеки классов может занять немного больше времени.

+0

«Просто?» Уже в 1980 году 3/4 синей книги были посвящены библиотекам классов и 1/4 к языку.И насколько больше библиотека Squeak? 10x? 100x? –

+0

@Norman Когда-либо слышал о нежном сарказме? Библиотека Squeak огромна (или, как я уже сказал в своем ответе, который вы, кажется, спешили, «гигантский»), и потребуется время, чтобы ускориться, особенно если сравнивать с очень простым синтаксисом ST. – 2010-02-20 22:21:19

+0

@Neil: Действительно. Я собирался оставить комментарий, говорящий только «Just?», Но, к сожалению, это было под личным ограничением ... краткость - это, в конце концов, душа остроумия :( –

4

Приключение, на котором вы собираетесь встать, - это дизайн и реализация visual programming language. Я не знаю хороших учебников в этой области, но есть конференция IEEE и реферированный журнал, посвященный этой области. Маргарет Бернетт из Университета штата Орегон, которая является высоко оцененной властью, собрала bibliography on visual programming languages; I   предлагаю вам начать там.

Вы можете обратиться к профессору Бернетту за советом. Если вы это сделаете, я надеюсь, вы сообщите о результатах здесь.

+0

Спасибо, что указали это. Я пытаюсь создать его для приложения для робототехники, где люди не нужно глубоко погружаться в API Robotics. У Microsoft есть один, но затем ... – iceman

3

Ограниченная форма программирования потока данных (потока на основе ака.) Программирование, где приложение строится из компонентов путем подключения их порты . В зависимости от платформы и назначения компоненты просты (например, селектор путей) или сложны (например, преобразователь изображений). Существует несколько систем обработки данных (только я сделал два), некоторые из них не имеют визуального редактора, некоторые из них просто являются частью более крупной системы, и есть некоторые, которые даже не упоминают о подходе. (Вы думаете, что сделать, MS-Excel и Unix Shell трубы является своим родом это?)

Всех современных цифровых синтезаторов на основе потоков данных подхода, есть удивительный визуальный пример: http://www.youtube.com/watch?v=0h-RhyopUmc

AFAIK, нет системы потока данных для определенных образовательных целей. Для получения дополнительной информации, вы должны проверить этот сайт: http://flowbased.org/start

0

Царапины ужасный язык, чтобы преподавать программирование (я сужу предвзято, но проверить Pipes Visual Programming Language)

То, что вы, кажется, хотят, чтобы сделать звуки много как функциональный Блочное программирование (как в языке программирования функциональных блоков IEC 61499 и других VPL для развития мехатроники). В VPL уже много исследований, поэтому вы можете убедиться, что A) то, что вы пытаетесь сделать, имеет аудиторию, а B) то, что вы пытаетесь сделать, можно сделать легко.

Это звучит немного отрицательный тон, но хорошее место, чтобы начать, чтобы проверить правдоподобность вашей идеи, читая краткое сообщение в блоге Davor Бабич по адресу http://blog.davor.se/blog/2012/09/09/Visual-programming/

до того, что платформа для использования - вы можете использовать почти все, просто убедитесь, что у него хорошие графические библиотеки (вы можете использовать Java с Swing - если вам нравится боль - или Python с TKinter), просто зависит от того, с чем вы знакомы. Просто имейте в виду, кому вы хотите в конечном итоге запустить язык (если его iOS, то посмотрите на использование Objective-C и т. Д.)

3

Существует новая библиотека с открытым исходным кодом: TUM.CMS.VPLControl. Получите это here. Эта библиотека может служить основой для ваших целей.

enter image description here

5

Заканчивать Google блокли. Блочно позволяет разработчику создавать свои собственные блоки, переводы (генераторы) практически на любой язык программирования (или даже JSON/XML) и включает графический интерфейс, позволяющий конечным пользователям создавать свои собственные программы.

Краткое резюме:

  • блокли под влиянием App Inventor, который сам по себе был основан от SCRATCH
  • App Inventor теперь использует блокли
  • так делает микродолото BBC
  • блокли (?!) сам работает в браузере (обычно) с использованием javascript
  • Сфокусированный на (визуальных) языках разработчик
  • язык independenten t блоки и генераторы
  • включает в себя блок Factory - который позволяет визуально программировать для создания новых блоков (?!) - я сам не нашел это полезным ... за исключением понимания
  • включает в себя генераторы для отображения блоков в javascript/python

eg Эти блоки: enter image description here

Сформирован этот код: enter image description here

https://developers.google.com/blockly/about/showcase Смотреть подробнее

С наилучшими пожеланиями - Энди

1

Существует Snap написана UC Беркли. Это еще один вариант для понимания VPL.

Смежные вопросы