2010-02-20 1 views
10

Mi interessa creare un linguaggio di programmazione visuale che possa aiutare i non programmatori (come i bambini) a scrivere programmi semplici, come Labview o Simulink consente agli ingegneri di connettere blocchi funzionali senza la conoscenza di come sono costruiti internamente. Si chiama programmazione per dimostrazione? Quali sono le applicazioni di esempio? Quale sarebbe una piattaforma ideale che può permettermi di farlo (può essere un desktop o un'app Web)Piattaforma per la creazione di un linguaggio di programmazione visuale

+0

Hai sentito parlare di _Logo_ (_http: //en.wikipedia.org/wiki/Logo_%28programming_language%29_)? – stakx

+1

Già fatto - vedi Scratch su http://scratch.mit.edu. e cosa intendi per "piattaforma"? –

+3

Esistono dozzine di linguaggi di programmazione visuale. http://en.wikipedia.org/wiki/Visual_programming_language. Per favore non inventarne un altro. Basta imparare uno che esiste già. http://www.p4games.org/ –

risposta

0

Se si vuole andare avanti con questo, la piattaforma che vi suggerisco è quello utilizzato per implementare Scratch (che già fa ciò che si vuole, secondo me), che è Squeak Smalltalk. L'ambiente Squeak è stato progettato pensando esplicitamente alla programmazione visiva. È gratuito e la sintassi Smalltalk può essere appresa in mezz'ora. L'apprendimento della gigantesca libreria di classi potrebbe richiedere un po 'di più.

+0

"Solo?" Già nel 1980 il 3/4 del libro blu era dedicato alle biblioteche di classe e 1/4 alla lingua.E quanto è più grande la libreria Squeak? 10x? 100x? –

+0

@Norman Hai mai sentito parlare di dolce sarcasmo? La libreria Squeak è enorme (o come ho detto nella mia risposta, che sembra aver letto in fretta, "gigantesco") e impiegherà molto tempo per essere al passo con la velocità, in particolare quando si confronta con la sintassi ST molto semplice. –

+0

@Neil: Infatti. Avevo intenzione di lasciare un commento dicendo solo "Giusto?", Ma purtroppo questo era sotto il limite del personaggio ... la brevità è, dopo tutto, l'anima dello spirito :( –

4

L'avventura su cui si sta per imbarcarsi è la progettazione e l'implementazione di un visual programming language. Non conosco nessun buon libro di testo in quest'area, ma ci sono una conferenza IEEE e una rivista con referee dedicata a questo campo. Margaret Burnett della Oregon State University, che è un'autorità altamente considerata, ha assemblato uno bibliography on visual programming languages; I   suggerisco di iniziare da lì.

Si potrebbe considerare di scrivere al professor Burnett per un consiglio. Se lo fai, spero che riporterai i risultati qui.

+0

Grazie per avermelo fatto notare ... sto cercando di costruirlo per un'applicazione di robotica in cui le persone non è necessario approfondire le API di Robotica. Microsoft ha uno, ma poi ... – iceman

3

Una forma ristretta di programmazione è dataflow programmazione (alias. Flow-based), in cui l'applicazione è costruita componenti da collegando loro porti. A seconda della piattaforma e dello scopo, i componenti sono semplici (come un selettore di percorsi) o complessi (come un trasformatore di immagini). Esistono diversi sistemi di flusso di dati (ne ho creati solo due), alcuni di essi non hanno un editor visivo, alcuni di loro sono solo una parte di un sistema più grande, e ce ne sono alcuni che non menzionano nemmeno l'approccio. (Pensavi, che fanno, MS-Excel e Unix Shell tubi sono una specie di questo?)

Tutti i sintetizzatori digitali moderni sulla base di approccio dataflow, c'è un incredibile esempio visivo: http://www.youtube.com/watch?v=0h-RhyopUmc

AFAIK, non esiste un sistema di flusso di dati per scopi educativi definitivi. Per ulteriori informazioni, si dovrebbe verificare nel sito: http://flowbased.org/start

0

Scratch è un linguaggio orribile per insegnare la programmazione (sono di parte, ma guarda che Pipes Visual Programming Language)

Cosa ti sembra di voler fare suona un po 'come funzionale Programmazione dei blocchi (come nel linguaggio di programmazione dei blocchi funzionali IEC 61499 e altri VPL per lo sviluppo meccatronico). Esistono già molte ricerche sulle VPL, quindi dovresti assicurarti che A) ciò che stai cercando di fare abbia un pubblico e B) ciò che stai cercando di fare può essere fatto facilmente.

che suona un po 'negativo nel tono, ma un buon punto di partenza per verificare la plausibilità della vostra idea è leggendo breve post sul blog di Davor Babic a http://blog.davor.se/blog/2012/09/09/Visual-programming/

Per quanto riguarda quale piattaforma da usare - si potrebbe usare praticamente tutto, assicurati solo che abbia delle buone librerie grafiche (potresti usare Java con Swing - se ti piace il dolore - o Python con TKinter) dipende solo da ciò che ti è familiare. Tieni a mente solo chi vuoi lanciare la lingua (se è iOS, quindi utilizzare Objective-C, ecc.)

3

C'è una nuova libreria open source: TUM.CMS.VPLControl. Prendi il numero here. Questa libreria può servire come base per i tuoi scopi.

enter image description here

5

Partenza Google Blockley. Blockly consente a uno sviluppatore di creare i propri blocchi, le traduzioni (generatori) in praticamente qualsiasi linguaggio di programmazione (o anche JSON/XML) e include un'interfaccia grafica per consentire agli utenti finali di creare i propri programmi.

Breve sintesi:

  • Blockley è stato influenzato da App Inventor, che a sua volta è stato basato fuori Scratch
  • App Inventor ora utilizza Blockley e
  • Così fa il microbit BBC
  • Blockley (?!) si esegue in un browser (in genere) utilizzando javascript
  • Incentrato su sviluppatori di linguaggio (visivo)
  • lingue indipendenti t blocchi e generatori
  • include un blocco di fabbrica - che consente una programmazione visuale per creare nuovi blocchi (?!) - non ho trovato questa utile me stesso ... tranne che per la comprensione
  • include generatori per mappare i blocchi a JavaScript/python

es. Questi blocchi: enter image description here

generata questo codice: enter image description here

Vedere https://developers.google.com/blockly/about/showcase per maggiori dettagli

migliori auguri - Andy

1

C'è Snap scritto da UC Berkeley. È un'altra opzione per capire VPL.