Documente Academic
Documente Profesional
Documente Cultură
Modul I
1 Introducere
1.1 Definirea programrii vizuale
Exist o varietate de definiii ale acestei noiuni, deoarece exist diferite opinii i
concepii despre programarea vizual:
Programarea vizual se refer la orice sistem care permite utilizatorului specificarea
programului ntr-o manier cel puin bidimensional. Limbajele textuale convenionale
nu sunt considerate bidimensionale, din moment ce compilatoarele sau interpretoarele le
proceseaz sub forma un ir lung, unidimensional. [Myers]
Un limbaj vizual manipuleaz informaia vizual, suport interaciune vizual, sau
permite programarea prin folosirea expresiilor vizuale. Ultima dintre aceste variante este
considerat a fi definiia unui limbaj de programare vizual. Limbajele de programare
vizual pot fi clasificate mai departe n concordan cu tipul i extensia expresiei vizuale
utilizate, n :
modified. These visual expressions may be used to form the syntax of new visual
programming languages, sometimes leading to new paradigms such as programming by
demonstration, or they may be used in visual programming environments for textual
programming languages.[McIntyre & Burnett] Margaret Burnett and David W.McIntyre].
Un limbaj vizual este orice form de comunicare care se bazeaz pe o grafic multidimensional n defavoarea unui simplu text. Chiar i textul simplu este deseori nsuit cu
proprieti vizuale cum ar fi indentarea i stilurile de font (ngroat, nclinat- bolding and
italics). De exemplu, limbajele de programare textual sunt mult mai uor de citit dac
textul este indentat pentru a se indica structura ierarhic; urmtorul cod:
voidmakeupper(char*buf){char*i;for(i=buf;*i;i+
+){*i=toupper(*i);}}
este mult mai greu de neles dect acelai cod cu o indentare adecvat:
voidmakeupper(char*buf)
{
char*i;
for(i=buf;*i;i++)
{
*i=toupper(*i);
}
}
n ciuda acestor considerente vizuale este considerat tot un limbaj textual.
Toate limbajele vizuale implic imagini de diferite tipuri - ncepnd de la simple noduri i
arcuri de conexiune pn la propoziii multi-dimensionale imbricate, alctuite din
imagini. Bineneles, limbajele vizuale implic i utilizarea unui simplu text, dar rolul
acestuia este de obicei limitat pentru etichetare sau simple explicaii i adnotri [Rob
Kremer].
La fel ca orice limbaj de programare, cel vizual poate fi interpretat doar dac este asociat
cu o sintax i o semantic formal cu toate c multe limbaje vizuale duc lips de
semantic sau ambele (Myers 1990). Limbajele vizuale rmn cu mult n urma celor
textuale, n aceast privin. Majoritatea limbajelor de programare textuale sunt bine
nelese datorit unui efort mai mare depus n investigarea semanticii formale a acestora.
n cazul limbajelor vizuale acest efort este mult redus.
Un limbaj de programare vizual este orice limbaj ce permite utilizatorului s specifice
un program ntr-o modalitate bidimensional sau mai multe dimensiuni. Limbajele
convenionale n mod text nu sunt considerate bidimensionale deoarece compilatoarele le
proceseaz ca un ir individual de caractere. Un limbaj de programare vizual permite
programare cu expresii vizuale: aranjamente vizuale ale unor simboluri grafice si
textuale. Majoritatea limbajelor de programare vizual sunt bazate pe ideea de cutii si
sgei adic, cutii sau cercuri sau balonae conectate prin linii i arce.
Un limbaj transformat vizual este un limbaj non-vizual cu o reprezentare vizual
suprapusa. n mod normal limbajele vizuale au expresii vizuale inerente pentru care nu
exist un echivalent text evident.
Visual Basic, Visual C++ si ntreaga familie Visual Studio nu sunt, n ciuda numelor lor,
limbaje de programare vizual. Sunt limbaje textuale care folosesc unelte grafice pentru
interfee de construcie ce uureaz aceast sarcin. Poriunea de interfa utilizator a
mediului de programare este vizual ns limbajele nu sunt.
lor grafice; oricum, ei au ajuns la concluzia c persoanele par s consume mai mult efort
n citirea informaiei grafice, notaiile grafice s-au dovedit a fi de folos pentru utilizatorii
experimentai.
Diagramele de structur
O diagram de structur este o descompunere modular ierarhic a unui program. ntre
nivelele arborelui exist legturi cu simboluri care indic tipul de informaie care este
circulat. Aceste structuri sunt reprezentate fie ca arbori, fie ca grafuri aciclice
direcionate. Diagramele sunt topologice, cu vrfuri etichetate i cu noduri.
Diagrame de nivel software
La un nivel mai nalt, funciile unui sistem sunt gndite pe nivele. Acest tip de diagrame
vor fi eficiente doar pentru scheme de acces destul de simple. Schemele mai complexe
vor duce la un graf care nu poate fi reprezentat cu regiuni adiacente. Problema este
reductibil la o problem de planaritate, considernd regiunile ca noduri iar adiacenele
ca vrfuri.
ciclu. La conveniile de adiacen, exist anumite limite. Terminarea prin ieire forat a
ciclurilor nu poate fi reprezentata de aceste grafuri.
Reele Petri
Diagramele vizuale de tip grafuri sunt folosite in etapa premergatoare programarii
vizuale. Retelele Petri reprezinta o categorie aparte de grafuri care pot fi folosite in
automatica/robotica la descrierea fluxurilor tehnologice pentru un sistem flexibil de
fabricatie (sistem cu evenimente discrete), descriere redata intr-o prima forma, de caietul
de sarcini al sistemului respectiv.
Instrumentele de baza pentru intocmirea caietelor de sarcini sunt grafurile de tipul Retele
Petri sau grafurile functionale GRAFCET (GRAphe Fonctionnel de Commande Etape
Transition (fr.).
Simulare functionala si realizarea prototipului virtual, al unui sistem de fabricatiefolosind programarea vizuala- este precedata de intocmirea caietelor de sarcini, deci de
obtinerea modelelor grafice de tip retele Petri sau grafurile functionale GRAFCET.
Consideram ca cititorii sunt familiarizati cu aceste modele. Vom aminti unele notiuni
necesare modelarii componentelor si a operatiilor dintr-un sistem de fabricatie, folosind
teoria grafurilor.
Modelul Grafcet a fost introdus in anul 1975 de un grup de cercetatori francezi condus de
Michel Blanchard si a fost inspirat din modelul Retelelor Petri.
Alegerea intre cele doua reprezentari grafice ar trebui sa se faca in functie de
complexitatea sistemului modelat. Pentru sisteme relativ simple nu are importanta
modelul folosit. La modelarea sistemelor complexe Grafcetul este folosit drept caiet de
sarcini, dar pentru analiza, sinteza si validarea modelului este recomandat sa se
foloseasca reteaua Petri. In felul acesta greseli greu detectabile pot fi evitate.
Un graf este complet definit daca se cunosc multimile nodurilor si arcelor acestuia.
Diferenta dintre un graf si o retea Petri consta n faptul ca, n cazul acesteia din urma,
multimea nodurilor este nlocuita cu doua multimi disjuncte: multimea locurilor
(reprezentate prin cercuri) si multimea tranzitiilor (reprezentate prin bare verticale sau
prin patrate).
Descrierea programelor n limbajele vizuale poate fi realizata si cu ajutorul retelelor Petri.
Studiul reelelor Petri este uzual acompaniat de o abordare la nivel vizual, prin
reprezentri grafice expresive. Drept urmare, literatura de specialitate raporteaz o larg
utilizare a reelelor Petri n modelare, analiz i proiectare, acoperind o arie semnificativ
de procese controlate secvenial, de la dinamica unor entiti individuale (David et al.,
1992), (Zurawski and Zhou, 1994), la dinamica unor entiti colective (sisteme mari
eng. large scale systems), ca de exemplu, sisteme hardware i software (Peterson, 1981),
(Levi and Agrawala, 1990), procese chimice (Yamalidou et al., 1990), sisteme de
fabricaie (Desrochers and Al-Jaar, 1993), (Zhou and DiCesare, 1993), (Lewis et al.,
1995), roboi i sisteme de transport (Freedman, 1991), (Cassandras et al., 1995), sisteme
de comunicaii (Nissanke, 1997).
Reelele Petri pot modela fenomenele specifice sistemelor cu evenimente discrete, din
care fac parte roboii i sistemele de fabricatie si transport. Fenomenele specifice acestor
sisteme sunt : succesiunea (o evoluie succede alteia), alegerea sau conflictul (selectarea
uneia din mai multe posibiliti de evoluie), concurena (startarea unor evoluii paralele),
sincronizarea (ncheierea unor evoluii paralele), excluderea mutual (condiionarea
reciproc a unor evoluii), care pot fi formulate n contexte temporizate sau
netemporizate.
Pe de alt parte, informaiile coninute de alte modaliti de descriere a dinamicii
sistemelor cu evenimente discrete (automate, sisteme de ateptare, reprezentri de stare
max-plus) pot fi grefate cu uurin pe arhitectura modelelor de tip reea Petri.
Reelele Petri sunt strns legate de grafurile de flux de date. O deosebire semnificativ
este c grafurile sunt bipartite, alctuite dintr-un set de poziii i tranziii. Fiecare tip de
nod poate fi subdivizat n subtipuri.
Grafuri de flux de date
Un graf de flux de date este un graf direcionat ce este alctuit din arce (reprezentnd
fluxul de date) i noduri (reprezentnd operaiile). Pachetele se deplaseaz n graf, iar
cnd un nod are pachete pe toate arcele care-i furnizeaz intrrile va executa operaiile.
Dup ce nodul este executat, va plasa pachete pe toate arcele sale de ieire. Nu exist o
ordine predeterminat a execuiei grafului de flux de date - datele urmeaz ordinea de
execuie.
n cadrul grafului, nodurile pot fi de patru tipuri (Perrot 1987) :
- computaionale (2 in, 1 out, sau 1 in, 1 out),
- de control (2 in, 2 out),
- de fuzionare (2 in, 1 out),
- de inglobare(1 in, 2 out).