Curs 10 Paradigma programarii vizuale

Post on 28-Jan-2017

246 views 2 download

Transcript of Curs 10 Paradigma programarii vizuale

Paradigma programarii vizuale

1

De ce VPL?

Abordarea vizuala are aparent un grad mai scazut de abstractizare

Datorita cresterii complexitatii IT la oricenivel al econmie este necesara ca sioamenii mediu calificati

Sa poata folosi instrumente complexespecifice IT

sa poata face mici/medii ajustari care necesita si implicarea programarii intr-o anume masura

b

a

22

22)( bababa

“Demonstratii fara cuvinte”

n

iin

112

2

Exemplu de schema de inductie

Demonstratia diagrammatica a teoremei lui Pitagora (Circa 200 B.C.)

b

a

Gandire prin modificarea unor diagrame

Diagrame in ingineria software

Rafinarea analizei diagrammatice

A C

D

BA

BDC

DC

Se pot face demonstratii diagramatice si in cazul UML?

AnimatiaAlgoritmilor

InterfataUtilizator

ProgramareaVizuala

LimbajeEnd user

Graficape Calculator

VizualizareStiintifica

Calcul Vizual

Definitii ale Programarii vizualeMyers (1986): “Visual Programming” (VP) se

refera la orice sistem care permiteutilizatorului saspecifice/defineasca/dezvolte intr-o maniera multidimensionala (minim douadimensiuni)

Limbajele de programare in mod text suntconsiderate monodimensionale deoarececompilatorul/ interpretorul realizeazaprocesarea unui flux de informatii unic (deciuni-dimensional)

8

Golin & Reis (1990)

Un limbaj vizual manipuleazainformatie vizuala sau suportainteractiune vizuala sau permiteprogramarea folosond expresii vizuale

Crimi, 1990

Un limbaj vizual modeleaza un sistem de icoane. Acesta consta intr-un aranjamentspatial de elemente grafice elementare

Definitii ale Programarii vizuale

Burnett (1999): Reia definitia anteioara(similara cu alui Meyers) si spune ca VP esteprogramarea in care mai multedimensiuni sunt folosite pentru a genera semantica asociata

Dimensiunile suplimentare se refera la

folosirea de obiecte multidimensionale(token) care vor alcatui expresiile vizuale

a relatiilor spatiale sau

a dimensiunii temporale pentru a specificarelatii semantice “before-after” semantic relationships.

Propun un mediu de dezvoltare diferit pentruprocesul de programare

Calculul paralel este o consecinta imediat a multormodele de calcul vizuala

Avantaje

Problema germana

NU se pot pune pe un ecran activ mai mult de 50 de primitive vizuale o data ( se rezolva partial dacase utilizeaza componentele compuse)

Exista cateva situati in care programareaclasica este superiora

Documentatia

Numele folosite in diferentierea elementelor de acelasi tip

Cea mai compacta forma de expresie a uni concept este matematica deci bazata pe o formul decitextuala

dezavantaje

Clasificare generica dupa caracteristici dominante

13

Sisteme timpurii: 1966-1980

o Ambit

o AutoProgrammer

o Plan2D

o Tinker

o Grail

o Query by Example

o Pygmalion

o Outline

Istoric limbaje

Sisteme vizuale: 1981-1990

ML-like VL

Pict

Formal

SmallStar

Hi-Visual

PC-Titles

ThingLab

ARK

o Prograph

o GAL

o PIGS

o Show and Tell

o Tinker Toy

o C^2

o SunPICT

o NoPumpG

o Cube

o Cantata

o Hence 1.4

o SchemePaint

o CODE 2.0

o Iconicode

o Viasvis

o MViews

o Forms/3

o AVS

o Mondrian

o ChemTrains

o HyperPascal

o Vampire

o VIPR

o SPE

Sisteme moderne: 1991-

Istoric

Clasificarea lui Meyers in 1986

Orice nu e prog. Prin ex. Programare prin exemplu

Batch Interactiv Batch Interactiv

Non-

VP

Toate limbajele

conventionale:

Pascal, Fortran,

etc.

LISP, APL, etc.

Non-

VP

Perechi

I/O*

Tinker

VP

Grail

AMBIT/G/L

Query by Example

FORMAL

GAL

Graphical Program

Editor

PIGS

Piet

PROGRAPH

State Transition

UIMS

VP

traces* AutoProgrammer*

Pygmalion

Graphical Thinglab

SmallStar

Rehearsal World

Chang/Shu clasificare spatiala

Burnett, 1994 — cercetare empiricaVPL: Visual Programming LanguagesVPL-I. Environments and Tools for VPLsVPL-II. Language ClassificationsA. Paradigms

1. Concurrent languages2. Constraint-based languages3. Data-flow languages4. Form-based and spreadsheed-based

languages5. Functional languages6. Imperative languages7. Logic languages8. Multi-paradigm languages9. Object-oriented languages10. Programming-by-demonstration

languages11. Rule-based languages

B. Visual representations1. Diagrammatic languages2. Iconic languages3. Languages based on static pictorial

sequences

VPL-III. Language FeaturesA. Abstraction

1. Data abstraction2. Procedural abstraction

B. Control flowC. Data types and structuresD. DocumentationE. Event handlingF. Exception handling

VPL-IV. Language Implementation IssuesA. Computational approaches (e.g.

demand-driven, data-driven)B. EfficiencyC. ParsingD. Translators (interpreters and compilersVPL-V. Language PurposeA. General-purpose languagesB. Database languagesC. Image-processing languagesD. Scientific visualization languagesE. User-interface generation languagesVPL-VI. Theory of VPLsA. Formal definition of VPLsB. Icon theoryC. Language design issues

1. Cognitive and user-interface designissues (e.g. usability studies,graphical perception)

2. Effective use of screen real estate3. Liveness4. Scope5. Type checking and type theory6. Visual representation issues (e.g.

static representation, animation)

18

Cam ar fi necesara o noua clasificare!O. Nierstrasz propune in 2008 o serie de intrebari

la care trebuie raspuns pentru a genera o nouaclasificare a VPL in accord cu ultimile evolutii ale doemeniului si anume:

1. Care sunt elementele vizuale?

> Iconite, grafuri, tabele, forme …

2. Care este domeniul de aplicare?

> Simulare, jocuri, animatie, modelare, compunereacomponentelor, algoritmi …

3. Ce paradigma(e) este (sunt) suportate?

> PBE, constrageri, dataflow, compunere de tile, componente si connectori, transformari pe graf, reprezentari n-dimensionale, …

Limbaje vizuale pureProgramatorul manipuleaza numai icoane

pentru a crea programul

Programul este depanat si executat in acelasimediu

Programul este compilat direct din reprezentarea lui vizuala

Clasificari

Clasificari

Sisteme text hibride si vizuale (nu suntVPL).Exista doua forme:

1. Sistemele in care programele sunt create vizual si apoitraduse intr-un limbaj text de nivel inalt

Exemplu: Rehearsal World

2. Sistemele in care se folosesc elemente grafice intr-un limbajtext.

(Erwig & Schneider, 2000).– au dezvoltat extensii la limbajele C si CPP care permit programatorilor sa amestececodul cu diagrame

ClasificariSisteme de programare prin exempleSe bazeaza pe idea “invatarii” sistemului cum sa execute un task (ex. Rehearsal World, Pygmalion)

Sisteme orientate pe constrangeriUN programator modeleaza obiecte fizice intr-un mediuvizual care este supus la o serie de constrangeri in scopulmimarii comportamentelui legilor naturii

ex. ThingLab, ARK

Sisteme bazate pe formeFolosest un model de tip foaie de calcul tabelar

ex. Forms/3, NoPumpG

SE refera la sistemele de animatie a algoritmilor pe care unii autori nu ii considera a avea legatura cu VPL. Acestea ofera afisarea vizuala executiei programelor

Un exemplu ar fi Balsa-II care este un sistem de sine statator specific Macintosh.

Balsa pentru calea cea mai scurta - Dijkstra

“Orfani” VPL

Categorii de VPL pure

1. Diagrammatic

2. Iconic

3. Programarea bazata pe forme

24

Diagrammatic Sunt sisteme bazate pe descrierea abstracta a

relatiilor intre obiecte

Exemple:

Limbaje de proiectare a bazelor de date:

diagrama entitate relatie.

Limbaje pentru programarea Data-flow

(de ex. cu retele Petri ).

Limbaje pentru controlul fluxului

Specificarea starilor si a tranzitiilor (automat).

Iconic Sunt bazate pe teoria icoanelor (Chang, 1987).

O Icoana reprezinta un obiect care are o reprezentare duala:

O parte logica (intelesul – formal/abstract)

O parte fizica (imaginea asociata )

Sistemele de icoane sunt structurate ca un set de realtii intre acestea.

Programarea bazata pe formeA imprumutat maniera de

reprezentare/vizualizare precum simetoda/modelul de programare din calculultabelar

In acest caz programarea este vazuta ca modificarea uni grup de celuleinterconectate de-a lungul timpului

Exemplu: Forms/3

Paradigme ale programarii vizuale•Programarea Dataflow

Nodurile descriu operatii, arcele orientate reprezinta fluxurile de informatii idntre noduri

•Programarea vizuala vazata pe reguliBazele: Implicatia logica

“daca faptul A se adeverste, atunci si B se adevereste”sau reguli ale sistemelor de productie

“daca situatia A apare atunci fa actiunea B”•Programarea functionalaBazele: functii matematice (fara side-effects(gen I/O direct))

programul este de forma (lambda calcul) f1(f2(f3(... (input) ...)))

Strategii de proiectare in VPL

Concreta:

Directa:

Explicita:

Feedback

Programarea functionala vizualaCLARITY

Visual Production SystemsFolosit pentru implementarea calcule care lucreaza direct cu picturi

BITPICT: un sistem pentru a rationa numai prin transformareadiagramelor

Programarea prin exemple (PBE)• A inceput cu Pygmalion

dar continua si la oraactuala numai ca granintaintre PBE si VPL este maigreu de definit in unelecazuri

• Pygmalion a fost un sistem timpuriu care permitea programatorilorsa demostreze intercativmaniera de calcul al uneifunctii.

ARK — Alternate Reality Kit

Fabrik — este un dataflow bidirectional

Limbaj pentru descriere arhitecturala - ADL

ADL – VPL - Vista — limbaj vizual de scripting

Programarea bazata pe constrangeri Pictorial Janus

Janus un limbaj de programare introdusde Kahn in 90. •Pictorial Janus este construit pesteJanus este•Complet vizual•Nu are text de loc•Este invariant topologic •Executie animata

Basics Pictorial Janus

A fost gandit pentru agenti deci:• Programele sunt retele de agenti care comunica prin

canale si proceseaza datele de intrare• Mesajele se schimba prin canale• Cand un agent primeste date el isi va verifica

preconditiile si va incepe procesarea daca acesteasunt indeplinite

• Un agent poate combina sau partitiona datele sitrimite rezultatele la alti agenti

• Agentii pot lucra concurrent

Sintaxa grafica a lui Pictorial Janus

abcList ([a,b,c | [])

PJ Exemplu: append([],[a],X)

Ecivalente Pictorial Janus

ThingLab — graphical constraints

ThingLab este alt sistem implementat in Smalltalk

int Factorial(int n)

{

if(n > 0) return (n*factorial(n-1));

else

return (1);

}

CUBE pur VPL

Forms/3 VPL purForms/3 este un limbaj tip calcul tabelar –

dar si VPL pur.

Paradigma calculului tabelar este un subset al paradigmei programarii functionale

Programarea functionala este dificila pentrumajoritatea programatorilor

Paradigma calculului tabelar desi are nistelimitari este mult mai usor adoptata de programatori

Forms/3 este un limbaj care elimina o seriede limitari ale paradigmei de calcul tabelar

DirectivitateaDirectivitatea inseamna implementarea

unui vocabular in stransa legatura cu taskuldescris de acesta

Immediate visual feedback Raspunsul vizual imediat se refera la transmiterea

pe ecran (afisarea) oricarei, modificari semanticesi este implementat prin intermediul unui evaluaricontinue.

Forms/3 Example

VIPR VPL pur Visual Imperative Programming

Dezvoltat la University din Colorado

Prograph — grafuri dataflow –VPL pur

Prograph este un limbaj dataflow orientat obiectA fost produs in 1990. Acum a fost reluat ca Andescotia“Marten” pentru Mac OSX.

Componente Prograph Sectiunile

Similare cu pachetele Java

Clase Atribute/metode

Suport pentru mosteniresimpla

Metode Baza pentru control

executiei

Operatii Componente executabile

de baza

Au intrari si iesiri

Root

Terminal

Exemplu HelloWorld

Operatii

Carcasametodei

metoda sort pentru sortare topologica

Sunt atasate unei operatii pentru a controla executiaControale

Control urmatoarea functie

visual data flow language LabView VPL purUn alt limbaj tip dataflow, similar cu Prograf, dezvoltat de National Instruments.

Exemplul 2 de interfata LabView

Front PanelControls = InputsIndicators = Outputs

Block DiagramProgramul care este in

spatele elementelor graficedin front panel

Componentele sunt conectateimpreuna

Programele LabVIEW se numesc instrumente virtuale

ControlBoolean

IndicatorDublu

Grafic forma De unda

Panel ToolbarExemplu de Front Panel al unui intrument virtual

Diagrama bloc pentru un instrument virtual

Constanta Numerica

Terminal termometruApel

subVI

Bucla While

KnobTerminal

Terminal ptButon de Stop

Terminal oprireBucla

GraficTemperatura

Seturile de functii si controale

Seturi de controale

Folosite pentru

a pune controalele siindicatoarele pe panoulfrontal sau

Pentru a crea daigramelebloc

Setul de Controale(Panel Window)

Setul de functii(Diagram Window)

Operating Tool

Positioning/Resizing Tool

Labeling Tool (etichete)

Wiring Tool (fire)

Shortcut Menu Tool

• Este folosita pentru a opera si modifica panoulfrontal si diagramele bloc.

Scrolling Tool

Breakpoint Tool

Probe Tool

Color Copy Tool

Coloring Tool

Paleta de instrumente

Automatic Selection Tool

Lansare in executie

Executie Continua

Oprire Executie

Buton de Pauza/Continuare

Setari Text

Aliniere Obiecte

Distribuie Obiecte

Reordonare

Lumineaza in timpulexecutiei

Step Into

Step Over

Step Out

Butoane suplimentare

Bara de stare

TerminaleDe control

Fereastra diagrama bloc

Front Panel Window

Terminaleindicator

Crearea unui instrument virtual VI

Crearea unui Block Diagram pentru VI

Dupa ce se creaza controalele si indicatoareledin Front Panel se va comuta catre Block Diagram cu combinatia <Ctrl-E>

Se vor muta obiectele din Front Panel catrelocatiile dorite folsind tool-ul de Position/Size/Select

Se vor plasa functiile pe diagrama

Se vor conecta terminalele corespunzatoarepentru a definitiva schema

Detalii pentru conectarea blocurilor

Conectarea “Hot Spot” Click pentru a selecta firele

• Cand se traseaza fir pe el va fi o eticheta galbena care va spune ce ciruit/pin/terminal se conecteaza

• Cand se trece cu firul peste un terminal el va palpaipentru a ajuta conectarea daca e cel dorit

• Right-clicking sau Escape in timpul conectarii vaabandona operatia

Culorile firelor vor fi automat stabilite de Labview functiede tipul elementelor conectate

Conectarea automata a firelor

LabVIEW va realiza conectarea automata a obiectelor pemasura ce obiectele sunt plasate in diagrama block.

65

Click in timp ce se traseaza conexiuneapentru a o lua in jos cu firulSpacebar va schimba orientarea firelor

Programare Dataflow• Block diagram NU se executa de la stanga la

dreapta

• Nodul se executa numai cand datele suntdisponibile la toate circuitele de intrare

• Nodeul va trimite rezultatele pe toate iesirile o data ce a terminat de efectuat calculele

Depanarea

• Gasirea erori

• Executie pas cu pas

• Probe – informatii depanare

Click pe buton de run cu sageata rupta va conduce la afisarea erorilor

Prin apasarea pe Execution Highlighting dataflow va fi animat folosind bule iar valorilevor fi afisate pe fire.

Right-click pe un fir va afisa toate informatiiledespre datele care trec prin acel firSau se poate selecta Probe tool din paleta si se face click pe fir

68

LIMBAJE VIZUALE hibride

DE ULTIMA ORA

74

OSX Automator

Naked Objects — visual domain objects

… se pot genera atat nivelul de persistenta cat si UI pornind de la obiectele domeniu.

In loc sa se codeze manual toate cele 4 straturi

Subtext

Idea de baza

DECIZIELogicaSemanita:Algebra BooleanaPrezentare: coloane partitionate

SE VA REALIZACalculSemantica: graf de functiiPrezentarea arbore de acoperire

AGG — graph transformation rules

AGG este un limbaj vizual bazat pe reguli care suporta o abordare algebrica pentru tratarea grafurilor

Yahoo Pipes — mashup dataflowPermite creare de aplicatii web prin compunerea de pipes si filters

EToys — programare bazata pe pietre

Simulator de programe create prin compunerea de pietricele-“tiles”

Automat in EToys

1. Deschide catalog de obiecteConnectors

2. Cloneaza un “Pin”

Redenumeste-l Stare State

Defineste scripturile “turnOn” si“turnOff” pentru a seta culoarea

3. Conecteaza 2 State

4. Defineste script pentru “click”

5. Creati butoane pentru Starile On si Off precum si pentru conectori

6. Pune butoanele intr-o bara butoane

Analiza EToysPro

Model si GUI unificat

Compunere pietre

Instrumente multiple (holders, connectors …)

Bazat pe prototip

(incurajeazadescoperirea)

Variabileles suntintroduse prin exemple

Genereaza Smalltalk in spate

Foarte expresiv)

Contra

Greu de extins cu Smalltalk

Este limitat de evenimente

Fara matrici

Proiectele inca au modelulSqueak 3.0

Fara expresii aritmetice

Fara depanare

Menu-urile sunt uneorineclare

Scripturile nu pot intoarce o valoare

No comment

Etoys vs. Squeak

Scratch

1. Incarcare joc

2. Selecteaza din “Games”

3. SelecteazaAmonBoxingca jocul de jucat

4. Citesteinstructiunile

5. Joaca!

Exemplu

Squeakland — Squeak pentru educatori

Modificarea/transformarea Obiectelor in Squeak

Catalogobiecte

Diverse optiuni

Un morph cu “handles”

In limbaj pentru crearea de aplicatii creat pentruincepatori

Trebuie sa fii conectat si la contul de gooagl’

Are doua mari module

Designer - proiectare

Blocks Editor – editare blocuri

App Inventor

App Inventor: Designer

Proiectarea UI al aplicatie!

App Inventor: Blocks Editor

Programarea functionalitatilor aplicatiei!

An App Inventor App

Blockly

A fost lansat de “Goagle” in 2012.

91

SEAL

92

Arhitectura sistemului

93

Listener application in SEAL-Blockly

94

BlocklyDuino

VPL pentru Arduino. Suporta blocuri grove

95

BlocklyDuino – descriere blocuri in XML<xml xmlns="http://www.w3.org/1999/xhtml"><block type="inout_buildin_led" x="18" y="17"><title name="STAT">HIGH</title><next><block type="base_delay" inline="true"><value name="DELAY_TIME"><block type="math_number"><title name="NUM">1000</title>

</block></value><next><block type="inout_buildin_led"><title name="STAT">LOW</title><next><block type="base_delay" inline="true"><value name="DELAY_TIME"><block type="math_number"><title name="NUM">1000</title>

</block></value><next><block type="grove_motor_shield"><title name="DIRECTION">forward</title>

</block></next>

</block></next>

</block></next>

</block></next>

</block>

<block type="grove_serial_lcd_print" inline="false" x="-7" y="-13">

<title name="PIN">1</title><value name="TEXT"><block type="text"><title name="TEXT">test anul 2</title>

</block></value><value name="TEXT2"><block type="variables_get"><title name="VAR">out1</title>

</block></value><value name="DELAY_TIME"><block type="math_arithmetic" inline="true"><title name="OP">ADD</title><value name="A"><block type="variables_get"><title name="VAR">in2</title>

</block></value><value name="B"><block type="variables_get"><title name="VAR">in2</title>

</block></value>

</block></value>

</block> </xml>

96

Referinte http://www.infoq.com/presentations/BPMN-2Visual-

Language Myers, “Visual programming, programming by example, and program

visualization: a taxonomy,” SIGCHI Bull., 1986. http://dx.doi.org/10.1145/22339.22349

Chang, “Visual languages: a tutorial and survey”, IEEE Software, 1987. http://dx.doi.org/10.1109/MS.1987.229792

Burnett and Baker, “A Classification System for Visual Programming Languages,” Journal of Visual Languages and Computing, 1994. ftp://ftp.cs.orst.edu/pub/burnett/VPLclassification.JVLC.Sept94.pdf

Boshernitsan and Downes, “Visual Programming Languages: A Survey”, TR UCB/CSD-04-1368, December 1997. http://nitsan.org/~maratb/pubs/csd-04-1368.pdf

Burnett, “Visual Programming,” Encyclopedia of Electrical and Electronics Engineering, 1999. ftp://ftp.cs.orst.edu/pub/burnett/whatIsVP.pdf

ARVIND & CULLER,D.E. 1986. Dataflow architectures.Ann. Rev. Comput. Sci. 1,225–253.

97

Referinte David Canfield Smith, “Pygmalion: a creative programming environment,” Ph.D.

thesis, Stanford University, Stanford, CA, USA, 1975. Allen Cypher, et al. (Eds.), Watch what I do: programming by demonstration, MIT

Press, Cambridge, MA, USA, 1993. Randall B. Smith, “Experiences with the alternate reality kit: an example of the

tension between literalism and magic,” 1987. Alan Borning, Thinglab — constraint-oriented simulation laboratory, Ph.D. thesis,

Stanford University, Stanford, CA, USA, 1979. Dan Ingalls, “Fabrik: A Visual Programming Environment,” Proceedings OOPSLA

'88, ACM SIGPLAN Notices, vol. 23, November 1988, pp. 176-190. Mary Shaw and David Garlan, Software Architecture: Perspectives on an Emerging

Discipline, Prentice-Hall, 1996.

www.cs.cmu.edu/~acme/docs/language_overview.html www.mactech.com/articles/mactech/Vol.10/10.11/PrographCPXTutorial/

http://www.jopera.org/files/jopera_mashup07.pdf http://pipes.yahoo.com/pipes/ http://www.seeedstudio.com/wiki/GROVE_System Eric J. Golin, Steven P. Reiss: The Specification of Visual Language Syntax; in JVLC, Vol. 1,

No. 2, 141-157; auch in Glinert [90-A&I], 512-517

http://geoanalytics.net/GeoVis08/a23.pdf www.emergent.de/pub/smalltalk/squeak/projects/EtoysLecture.pr

98

Referinte Johnston, W.M.; Hanna, J.R.P. and Millar, R.J. (2004). "Advances in dataflow

programming languages" ACM Computing Surveys 36 (1): 1–34. doi:10.1145/1013208.1013209

https://www.iam.unibe.ch/scg/svn_repos/Lectures/ProgrammingLanguages/12VisualProgramming.ppt

Ivan Edward Sutherland, Sketchpad: A man-machine graphical communication system,

Ph.D. thesis, MIT, January 1963. www.cl.cam.ac.uk/techreports/UCAM-CL-TR-574.pdf

http://www.i3s.unice.fr/~mosser/_media/research/iawtic08.pdf

http://www.apple.com/macosx/features/automator/ www.nakedobjects.org Jonathan Edwards, “No ifs, ands, or buts: uncovering the simplicity of conditionals,”

OOPSLA 2007. http://subtextual.org/ Shi-Kuo Chang, “Visual languages: a tutorial and survey,” IEEE Software, 1987 Gaelli, et al., Idioms for Composing Games with EToys, C5 2006 ftp://ftp.cs.orst.edu/pub/burnett/VPLclassification.JVLC.Sept94.pdf

www.iam.unibe.ch/~scg/Teaching/CP/PetriNets http://web.engr.oregonstate.edu/~erwig/papers/

“LabVIEW Graphical Programming: Practical Applications in Instrumentation and Control” by Johnson Gary W., Gary W. Johnson. McGraw-Hill, 1997.

Kahn and Vijay A. Saraswat in "Actors as a special case of concurrent constraint (logic) programming", in SIGPLAN Notices, October 1990 99

Referinte Crimi, C., A. Guercio, G. Pacini, G. Tortora, and M. Tucci, "Automating

Visual Language Generation," IEEE Transactions on Software Engineering, vol. 16, no. 10, pp. 1122-1135, October 1990

Margaret M. Burnett and Herkimer J. Gottfried. 1998. Graphical definitions: expanding spreadsheet languages through direct manipulation and gestures. ACM Trans. Comput.-Hum. Interact. 5, 1 (March 1998), 1-33.

http://www.cs.washington.edu/homes/jpower/vpl/vpl_home.html http://www.wi.leidenuniv.nl/CS/SEIS/vislang/VLcourse.html http://www-lsi.upc.es/~rbaeza/cursos/vp/todo.html http://www.cs.berkeley.edu/~maratb/cs263/ http://www.efd.lth.se/~d87man/EXJOBB/MSC.html http://www.ecs.soton.ac.uk/~tal00r/vlangs.html http://www.researchgate.net/publication/236132854_Demo_Abstract_SEAL-

Blockly_Sensor_Network_Visual_Programming_Using_a_Web_Browser/file/9c960516422aea7b94.pdf

http://www.schiffer.at/vp/html/liter.htm Erwig, M. & Schneider, M. (2000). Query-By-Trace: Visual Predicate

Specification in Spatio¬Temporal Databases. In Arisawa, H. and Catarci, T., editors, Advances in Visual Information Management - Visual Database Systems, pages 199-218. Kluwer Academic Publishers, Boston, MA.

http://www.ickn.org/elements/hyper/cyb105.htm http://www.clarity-support.com

100

Visually Programed Sensor Bee

101