Difference between revisions of "Rodin"

From HaskellWiki
Jump to navigation Jump to search
m (More messages concerning the DSL Rodin , written using Haskell)
m (More questions about the Rodin DSL)
Line 8: Line 8:
   
 
==.Ce este Rodin ? ==
 
==.Ce este Rodin ? ==
Un limbaj de programare imperativ, asemanator cu C-ul, destinat rularii de programe in pseudocod. Doriti un software care sa execute, pentru elevii dumneavoastra , programele scrise de ei in pseudocod ? Daca Da, Rodin este pentru dumneavoastra. Limbajul Rodin este foarte bun pentru invatat o serie de notiuni de algoritmistica, dupa parerea beta-testerilor nostri. Limbajul Rodin raspunde la intrebarea "Cum sa rulez pseudocod scris in limba româna, pe calculator, la lectiile de informatica de la liceu sau scoala generala, ori chiar facultate ?" Limbajul pseudocod Rodin este rezultatul a 7 ani de studiu si cercetare universitara in teoria limbajelor modulare.
+
Un limbaj de programare imperativ, asemanator cu C-ul, destinat rularii de programe in pseudocod. Doriti un software care sa execute, pentru elevii dumneavoastra , programele scrise de ei in pseudocod ? Daca Da, Rodin este pentru dumneavoastra. Limbajul '''Rodin este foarte bun pentru invatat o serie de notiuni de algoritmistica''', dupa parerea beta-testerilor nostri. Limbajul Rodin raspunde la intrebarea "Cum sa rulez pseudocod scris in limba româna, pe calculator, la lectiile de informatica de la liceu sau scoala generala, ori chiar la facultate ?" Limbajul pseudocod Rodin este rezultatul a 7 ani de studiu si cercetare universitara in teoria limbajelor modulare.
   
  +
==. Se poate folosi la orele obisnuite de programare si algoritmistica ? ==
  +
Da. Deoarece orele presupun predarea in pseudocod. Ori exact asta este Rodin, un software pentru rulat programele scrise in pseudocod. (Deocamdata o varianta limitata de pseudocod.) Nu e nevoie sa va ganditi la niste ore speciale la care sa se predea Rodin. '''Rodin nu este in esenta deosebit de limbajul pseudocod de manual, atata doar ca este ceva mai strict''', cu o sintaxa ca a C-ului (acolade, ; etc) si obliga elevii sa fie mai atenti la detalii, atunci cand transcriu algoritmii pe calculator.
   
 
==. Impresii despre Limbajul pseudocod Rodin ==
 
==. Impresii despre Limbajul pseudocod Rodin ==
Line 23: Line 25:
 
* [...] zilele astea "is legat de glie" dar imediat ce incepe scoala voi avea de lucru chiar cu aplicatia...
 
* [...] zilele astea "is legat de glie" dar imediat ce incepe scoala voi avea de lucru chiar cu aplicatia...
 
Prof. Mihai C. (Iasi)
 
Prof. Mihai C. (Iasi)
* Multumesc pentru informare si felicitari pentru demersul d-voastra, Am sapomenesc studentilor mei despre Rodin, mai ales daca voi mai primi detalii si daca va ajunge in grupa FOSS. Mult succes !
+
* Multumesc pentru informare si felicitari pentru demersul d-voastra, Am sa pomenesc studentilor mei despre Rodin, mai ales daca voi mai primi detalii si daca va ajunge in grupa FOSS. Mult succes !
   
 
(Prof.) Mihai J. (Cluj)
 
(Prof.) Mihai J. (Cluj)
  +
  +
''Multumesc pe aceasta cale inca o data tuturor acelora care mi-au transmis impresiile lor despre limbajul pseudocod Rodin, asa cum este el astazi, (versiunea .05 sau .06).''
   
   
Line 32: Line 36:
   
 
==. Ce aduce nou Rodin ? ==
 
==. Ce aduce nou Rodin ? ==
Cuvinte cheie in limba româna, cateva inovatii in materie de expresii (admite si unele lambda expresii cu un parametru impreuna cu operatia de aplicare). Este primul interpretor modular de pseudocod care foloseste cuvinte cheie romanesti.
+
Cuvinte cheie in limba româna, cateva inovatii in materie de expresii (admite si unele lambda expresii cu un parametru impreuna cu operatia de aplicare). Este primul interpretor modular de pseudocod care foloseste cuvinte cheie romanesti (din cate stiu).
   
 
==. Ce mai ofera Rodin ?==
 
==. Ce mai ofera Rodin ?==
O posibilitate de a vedea seria de atribuiri care au loc in timpul executiei programului (lansati-l cu switch-ul -mem). Liberatatea de a alege orice extensie pentru fisiere si orice editor pentru a scrie programe, chiar si Notepad-ul.
+
'''O posibilitate de a vedea seria de atribuiri care au loc in timpul executiei programului''' (lansati-l cu switch-ul -mem). Liberatatea de a alege orice extensie pentru fisiere si orice editor pentru a scrie programe, chiar si Notepad-ul. Nu este nevoie sa declarati variabilele, cel putin deocamdata.
Nu este nevoie sa declarati variabilele, cel putin deocamdata.Ele se declara automat imediat ce scrieti o atribuire.
 
   
 
==. Ce legatura este intre Rodin si Haskell ==
 
==. Ce legatura este intre Rodin si Haskell ==
Line 50: Line 53:
   
 
==. De unde se poate obtine Rodin ? ==
 
==. De unde se poate obtine Rodin ? ==
De la un alt beta tester Rodin, deocamdata. Urmeaza sa-l distribuim si prin alte metode: dischete, e-mail, download. Deocamdata il distribuim prin e-mail.
+
Din rubrica "Download direct", de la inceputul acestei pagini. De la un alt beta tester Rodin. Il distribuim si prin alte metode: dischete, e-mail. La inceput l-am distribuit doar prin e-mail. Acum puteti cere o discheta ori un CD de la Univ. Bacau, de la cabinetul domnului Popa. Ori puteti veni cu un stick :)
sau puteti cere o discheta ori un CD de la Univ. Bacau, de la cabinetul domnului Popa. Ori puteti veni cu un stick :)
 
   
 
==. Cine este autorul Rodin ? ==
 
==. Cine este autorul Rodin ? ==
Line 142: Line 144:
   
 
==. Asemenea programe pot fi rulate efectiv pe calculator ?==
 
==. Asemenea programe pot fi rulate efectiv pe calculator ?==
Da, fireste. De altfel aceasta este o definitie a pseudocodului: pseudocodul este un limbaj scris cu propriile noastre cuvinte dar suficient de precis incat daca am avea o masina capabila sa-l ruleze el al rula.
+
Da, fireste. De altfel aceasta este o definitie a pseudocodului: pseudocodul este un limbaj scris cu propriile noastre cuvinte dar suficient de precis incat daca am avea o masina capabila sa-l ruleze, el al rula.
   
 
Iata o imagine pentru cei care nu sunt convinsi:
 
Iata o imagine pentru cei care nu sunt convinsi:
 
[http://www.haskell.org/sitewiki/images/c/ce/Rodin-A-3ok.jpg - Click aici.]
 
[http://www.haskell.org/sitewiki/images/c/ce/Rodin-A-3ok.jpg - Click aici.]
Programul a calculat factorialul numarului trei, care este 6.
+
Programul din imagine a calculat factorialul numarului trei, care este 6.
   
 
==. Ce facem daca un program nu ruleaza corect ? ==
 
==. Ce facem daca un program nu ruleaza corect ? ==
Line 242: Line 244:
 
Daca stiti Haskell si extensiile sale, daca cunoasteti transformatori de monade, daca ati folosit parsere modulare, atunci da. Ca alternativa sper sa pot publica un mic ghid dupa care un necunoscator al acestora sa poata scrie totusi componente pentru Rodin.
 
Daca stiti Haskell si extensiile sale, daca cunoasteti transformatori de monade, daca ati folosit parsere modulare, atunci da. Ca alternativa sper sa pot publica un mic ghid dupa care un necunoscator al acestora sa poata scrie totusi componente pentru Rodin.
   
Alt mod de a contribui la dezvoltarea Rodin este sa scrieti pur si simplu programe in Rodin si sa le postati pe aceasta pagina. Ma oblig sa le verific inainte, daca nu sunt prea complicate sau prea multe. (Altfel n-as avea timp indeajuns pentru ele.)
+
Alt mod de a contribui la dezvoltarea Rodin este sa scrieti pur si simplu programe in Rodin si sa le postati pe aceasta pagina sau sa mi le trimiteti prin e-mail. Ma oblig sa le verific inainte, daca nu sunt prea complicate sau prea multe. (Altfel n-as avea timp indeajuns pentru ele.)
   
 
==. Faceti si instruire in priviinta Rodin ? ==
 
==. Faceti si instruire in priviinta Rodin ? ==
Da, daca exista cerere. Voi anunta prin e-mail.
+
Da, daca exista cerere. Voi anunta prin e-mail.
   
==. Pe ce notiuni se bazeaza Rodin ==
+
==. Pe ce notiuni se bazeaza Rodin ?==
Pe notiuni de teoria categoriilor, monade, semantici monadice modulare si altele
+
Pe notiuni de teoria categoriilor, monade, semantici monadice modulare si altele despre care am scris mai sus.
despre care am scris mai sus.
 
   
 
==. Ar putea un elev de liceu sa programeze in limbajul Rodin sau sa fie beta tester ?==
 
==. Ar putea un elev de liceu sa programeze in limbajul Rodin sau sa fie beta tester ?==
Cu siguranta. Limbajul a fost inventat tocmai cu acest gand in minte, sa fie accesibil elevilor si profesorilor. Dar totusi sa fie suficient de strict ca sa te oblige sa deprinzi disciplina programarii.
+
Cu siguranta. Limbajul a fost inventat tocmai cu acest gand in minte, sa fie accesibil elevilor si profesorilor incepoatori. Dar totusi sa fie suficient de strict ca sa te oblige sa deprinzi disciplina programarii.
   
 
==. Ce are de facut un beta tester Rodin ==
 
==. Ce are de facut un beta tester Rodin ==
Line 260: Line 261:
   
 
Sa programati intr-un fel de pseudocod mici programe care fac calcule cu numere intregi.
 
Sa programati intr-un fel de pseudocod mici programe care fac calcule cu numere intregi.
Software-ul vi-l ofer eu. Va trimit si o mica documentatie.
+
Software-ul vi-l ofer gratuit. Va trimit si o mica documentatie.
 
Programele care merg mi le trimiteti cu mentiunea ca sunt bune si v-au iesit cum va asteptati.
 
Programele care merg mi le trimiteti cu mentiunea ca sunt bune si v-au iesit cum va asteptati.
Cele care nu va ies cum va asteptati mi le trimiteti (totusi) ca sa
+
Cele care nu va ies cum va asteptati va rog sa mi le trimiteti (totusi) ca sa
vad daca e corect implementat limbajul.
+
verific daca este corect implementat limbajul.
 
Pseudocodul propus este un fel de mini C, fara declaratii, doar cu intregi (deocamdata) si e scris cu instructiuni in limba romana.
 
Pseudocodul propus este un fel de mini C, fara declaratii, doar cu intregi (deocamdata) si e scris cu instructiuni in limba romana.
Daca simtiti nevoia unor corecturi sau adaugiri la limbaj imi spuneti, ca sa continui sa-l dezvolt.
+
Daca simtiti nevoia unor corecturi sau adaugiri la limbaj, va rog sa imi spuneti, astfel pot sa continui sa-l dezvolt.
   
Banuiesc ca aveti exemple de programe in pseudocod, pentru lectii, nu-i asa ? Trebuiesc doar scrise cu un vocabular anume, folosind cuvinte romanesti, fara declaratii.
+
Banuiesc ca aveti exemple de programe in pseudocod, pentru lectii, nu-i asa ? Trebuiesc doar scrise cu un vocabular anume, folosind cuvinte romanesti, fara declaratii. Iata niste exemple minuscule:
   
 
Ex:
 
Ex:
Line 278: Line 279:
 
scrie x;}
 
scrie x;}
   
Va descurcati sa scrieti asemenea programe si chiar unele mai complicate daca va dau limbajul, nu-i asa ?
+
Va descurcati sa scrieti asemenea programe si chiar unele mai complicate, nu-i asa ?
   
 
Software-ul ocupa o discheta sau poate fi descarcat de pe web.
Limbajul va avea si o pagina web prin care voi comunica cu cei care-l testeaza, cel putin asa intentionez. Ea nu e realizata dar va comunic eu cand va fi.
 
 
Software-ul ocupa o discheta.
 
   
 
P.Dan
 
P.Dan
Line 288: Line 287:
 
==. Ce cunostinte ar trebui sa aiba cineva ca sa utilizeze Limbajul Rodin ? ==
 
==. Ce cunostinte ar trebui sa aiba cineva ca sa utilizeze Limbajul Rodin ? ==
 
Minim: Deschiderea unei console Windows cu Run-> Command -> cmd
 
Minim: Deschiderea unei console Windows cu Run-> Command -> cmd
apoi tastarea unei linii de comenzi. Plus cateva cunostinte despre limbajul C cu care Rodin se aseamana.
+
apoi tastarea unei linii de comenzi. Plus cateva cunostinte despre limbajul C cu care Rodin se aseamana. <br>
Mediu: C la un nivel didactic. Abilitatea de a intelege C-ul dincolo de cuvintele sale cheie.
+
Mediu: C la un nivel didactic. Abilitatea de a intelege C-ul dincolo de cuvintele sale cheie. <br>
 
Maxim: C si lambda calcul, daca doriti sa exploatati puterea unor expresii speciale (lambda expresiile numite abstractii).
 
Maxim: C si lambda calcul, daca doriti sa exploatati puterea unor expresii speciale (lambda expresiile numite abstractii).
   
Line 295: Line 294:
 
Natural, facand cercetare pentru prezentarea la o intalnire stiintifica internationala, primele experimente au fost in limba engleza. Dorim tare mult sa sustinem simultan abele versiuni de Rodin: Rodin-Ro si Rodin-En, fiecare folosind alt set de cuvinte cheie. Afirm ca s-ar putea trece de la Rodin-Ro la C prin intermediul Rodin-En, eventual folosindu-l ca suport pentru realizarea temelor. (Ipoteza. Ce zic specialistii in pedagogia informaticii ?) Am inceput sa adaug pe lista de subtilitati exemple in Rodin-Ro (adica scrise pe romaneste.).
 
Natural, facand cercetare pentru prezentarea la o intalnire stiintifica internationala, primele experimente au fost in limba engleza. Dorim tare mult sa sustinem simultan abele versiuni de Rodin: Rodin-Ro si Rodin-En, fiecare folosind alt set de cuvinte cheie. Afirm ca s-ar putea trece de la Rodin-Ro la C prin intermediul Rodin-En, eventual folosindu-l ca suport pentru realizarea temelor. (Ipoteza. Ce zic specialistii in pedagogia informaticii ?) Am inceput sa adaug pe lista de subtilitati exemple in Rodin-Ro (adica scrise pe romaneste.).
   
  +
==. Puteti realiza versiuni de Rodin in limbile minoritatilor nationale ? ==
==. De unde mai aflam vesti despre Rodin ==
 
  +
Putem. Nu inseamna insa ca vor fi gata tot in 4 zile, mai ales ca vacanta de vara 2008 s-a terminat.
  +
 
==. De unde mai aflam vesti despre Rodin ? ==
 
De pe site-ul proiectului http://www.haskell.org/haskellwiki/Rodin.
 
De pe site-ul proiectului http://www.haskell.org/haskellwiki/Rodin.
 
Voi trimite beta testerilor si cate-o notificare din cand in cand dar acest site din domeniul Haskell.org ramane sursa principala de informatii despre proiectul Rodin. Nu apelati la mirror-uri.
 
Voi trimite beta testerilor si cate-o notificare din cand in cand dar acest site din domeniul Haskell.org ramane sursa principala de informatii despre proiectul Rodin. Nu apelati la mirror-uri.
  +
  +
==. Dati si diplome de participare profesorilor implicati in program ? ==
  +
De ce nu ? Din partea mea, da. Urmeaza sa alegem organizatia / institutia / departamentul care va pune stampila finala pe diplome. Dar aceste diplome vor fi oferite abia DUPA ce respectivii vor publica o serie de programe Rodin pe site, ocazie cu care le fac cunoscute numele.
  +
  +
==. Se va putea contribui la site direct ? ==
  +
Da, avem in vedere si acest fel de colaborare atunci cand numarul profesorilor participanti va depasi o anumita limita. Contactati-ma si rezolvam si aceasta problema. Dar cei care o vor face raspund pentru corectitudinea a ceea ce scriu.
  +
 
----
 
----
 
Pagina proiectului Rodin este in dezvoltare. Vizitati-o regulat pentru a gasi update-urile, noutatile precum si programele si exercitiile noi adaugate.
 
Pagina proiectului Rodin este in dezvoltare. Vizitati-o regulat pentru a gasi update-urile, noutatile precum si programele si exercitiile noi adaugate.

Revision as of 20:19, 1 September 2008

.Limbajul Rodin, un limbaj pseudocod nou implementat (2008), in stil C, proiectat pentru profesorii si elevii din România, pentru orele de algoritmistica

Nu uitati sa scanati cu un antivirus executabilul din arhiva.


Upgradati la RodinV06-Ro care are si operatorul modulo, notat %.  

. Download direct !

<Download> Rodinv06-Ro.exe.zip din 28 august 2008. Are si operatorul modulo, pe care nu-l inclusesem in versiunea anterioara.
Descarcati si fisierul cu sintaxa de pe pagina: Image:Cuvinte_cheie_si_operatori-Rodin-Ro-V06-28-8-2008.txt
<Download> Rodin-Ro-floppy.zip incluzand RodinV05-Ro din 7 august 2008.

.Ce este Rodin ?

Un limbaj de programare imperativ, asemanator cu C-ul, destinat rularii de programe in pseudocod. Doriti un software care sa execute, pentru elevii dumneavoastra , programele scrise de ei in pseudocod ? Daca Da, Rodin este pentru dumneavoastra. Limbajul Rodin este foarte bun pentru invatat o serie de notiuni de algoritmistica, dupa parerea beta-testerilor nostri. Limbajul Rodin raspunde la intrebarea "Cum sa rulez pseudocod scris in limba româna, pe calculator, la lectiile de informatica de la liceu sau scoala generala, ori chiar la facultate ?" Limbajul pseudocod Rodin este rezultatul a 7 ani de studiu si cercetare universitara in teoria limbajelor modulare.

. Se poate folosi la orele obisnuite de programare si algoritmistica ?

Da. Deoarece orele presupun predarea in pseudocod. Ori exact asta este Rodin, un software pentru rulat programele scrise in pseudocod. (Deocamdata o varianta limitata de pseudocod.) Nu e nevoie sa va ganditi la niste ore speciale la care sa se predea Rodin. Rodin nu este in esenta deosebit de limbajul pseudocod de manual, atata doar ca este ceva mai strict, cu o sintaxa ca a C-ului (acolade, ; etc) si obliga elevii sa fie mai atenti la detalii, atunci cand transcriu algoritmii pe calculator.

. Impresii despre Limbajul pseudocod Rodin

  • Domnule Profesor,
 Va multumesc.Colegii din invatamintul preuniversitar va vor fi recunoscatori.
 Cu prietenie,
 Prof. Vasile P. (Neamt)
  • . Programul va fi foarte bun pentru cei care vor sa inteleaga algoritmi si modul de gandire pentru a programa. Presupun ca in viitor vor fi adaugate: vectori si matrici :) Va urez mult succes cu programul. :) Si va ajut oricand aveti nevoie.
 A.C. absolvent informatica (Bacau)
  • Poate ar fi bine, cand aveti timp, sa ne chemati la o instruire.
Cu stima si respect,
Prof. Mihaela B. (Bacau)
  • [...] zilele astea "is legat de glie" dar imediat ce incepe scoala voi avea de lucru chiar cu aplicatia...
Prof. Mihai C. (Iasi)
  • Multumesc pentru informare si felicitari pentru demersul d-voastra, Am sa pomenesc studentilor mei despre Rodin, mai ales daca voi mai primi detalii si daca va ajunge in grupa FOSS. Mult succes !

(Prof.) Mihai J. (Cluj)

Multumesc pe aceasta cale inca o data tuturor acelora care mi-au transmis impresiile lor despre limbajul pseudocod Rodin, asa cum este el astazi, (versiunea .05 sau .06).


. De unde vine numele Rodin ?

Rodin, RoDin, Din Ro , Din România. Este un mic limbaj care vine din România, scris de un român pentru colegii sai profesori de liceu Români sau asistentii de la facultatile românesti, oriunde ar fi sau ar preda ei.

. Ce aduce nou Rodin ?

Cuvinte cheie in limba româna, cateva inovatii in materie de expresii (admite si unele lambda expresii cu un parametru impreuna cu operatia de aplicare). Este primul interpretor modular de pseudocod care foloseste cuvinte cheie romanesti (din cate stiu).

. Ce mai ofera Rodin ?

O posibilitate de a vedea seria de atribuiri care au loc in timpul executiei programului (lansati-l cu switch-ul -mem). Liberatatea de a alege orice extensie pentru fisiere si orice editor pentru a scrie programe, chiar si Notepad-ul. Nu este nevoie sa declarati variabilele, cel putin deocamdata.

. Ce legatura este intre Rodin si Haskell

Rodin a fost scris in Haskell 98 si compilat cu GHC-ul.

. Unde gasesc pagina limbajului pseudocod Rodin ?

Intrati la www.haskell.org si cautati cu motorul de cautare din dreapta sus cuvinte cum ar fi: pseudocod, Rodin. Pe lista pagini apare pagina Rodin. Nu il puteti gasi cu Google ! Sau mergeti direct la http://www.haskell.org/haskellwiki/Rodin.

. Ce v-a determinat sa alegeti Haskell ca limbaj de implementare ?

Productivitatea sa fantastica. RodinV05-Ro a fost scris in circa 4 zile a cate 4 ore de munca, timp in care am facut si cercetare. Dar dupa cativa ani buni (7) de studii in domeniul constructiei compilatoarelor si interpretoarelor limbajelor de programare.

. De unde se poate obtine Rodin ?

Din rubrica "Download direct", de la inceputul acestei pagini. De la un alt beta tester Rodin. Il distribuim si prin alte metode: dischete, e-mail. La inceput l-am distribuit doar prin e-mail. Acum puteti cere o discheta ori un CD de la Univ. Bacau, de la cabinetul domnului Popa. Ori puteti veni cu un stick :)

. Cine este autorul Rodin ?

Dan V.Popa. Actualmente, lucreaza la Universitatea Bacau.

. Cum arata cele mai scurte program in Rodin posibile ?

Unele dintre cele mai scurte programe, care fac totusi macar o prelucrare cu datele utilizatorului (reafisarea lor, incrementarea si reafisarea) ar fi:

{ tasteaza x;
  scrie x;
}

sau altul

{ tasteaza x;
  fie x=x+1;
  scrie x;
}


Vom mai adauga si alte exemple.

. Unde gasim alte exemple de programe in Rodin ?

Aici vom posta exemple imediat ce vin de la beta testeri si le verificam.


Exemplu. Id: A-1
Beta tester: Adrian
Tema: Bucle imbricate; 1000 x 1000 operatii
Obs: Executia dureaza, bucla interioara fiind o temporizare. 
 
{fie n=1000; 
 cat timp (n>0)
   {fie x=0;
    cat timp (x<1000)
       fie x=x+1;
    fie n=n-1;
    scrie n;
    };
};


Exemplu. Id: A-2
Beta tester: Adrian
Tema: Calculul factorialului
 
{
 fie x=0;
 tasteaza x;
 fie g=1;
 executa 
 {
  fie g=g*x;
  fie x=x-1;
 }
 atat cat (x>1);
 scrie g;
}
Exemplu. Id: D-cmmdc
Beta tester: Dan
Tema: Calculul celui mai mare divizor comun
Notiuni: repeta ... pina cand (ca in Pascal) si operatorul modulo, notat %
Ruleaza pe: RodinV06-Ro din 28 aug 2008. Upgradati daca aveti RodinV05-Ro
 
{ tasteaza a;
  tasteaza b;
  fie undeimp=a;
  fie unimp=b;
  repeta
    { fie unrest=undeimp%unimp;
      fie undeimp=unimp;
      fie unimp=unrest;
     }
  pana cand (unimp==0);
  scrie undeimp;
};


. Asemenea programe pot fi rulate efectiv pe calculator ?

Da, fireste. De altfel aceasta este o definitie a pseudocodului: pseudocodul este un limbaj scris cu propriile noastre cuvinte dar suficient de precis incat daca am avea o masina capabila sa-l ruleze, el al rula.

Iata o imagine pentru cei care nu sunt convinsi: - Click aici. Programul din imagine a calculat factorialul numarului trei, care este 6.

. Ce facem daca un program nu ruleaza corect ?

Consultati lista de sugestii si subtilitati cunoscute:

S1) Atentie:   let x=1,x     va fi perceput ca      let x = (1,x) 
puneti (let x=1),x in loc. 
Dar         {1;2;}
             1,2     

S2) Puneti spatiu dupa do la do while . Obligatoriu.

S3) 12+(\\ y . y) (4+4) -- nu puneti spatii linga plusuri si alti operatori.    Valabil si pentru comparatii: <,>, ==, !=

S4) Daca incercati sa folositi o atribuire pe post de expresie,
si o puneti in paranteza, atunci  inchideti paranteza imediat, fara spatii:

H:\_Pr>MainV03.exe Rodin2.hs
Asa nu e bine:

{ let y =2;
  let x=100;
  while (x>10)
    let x=x-(let y = 1 );
  print x;
  print y;
}

H:\_P>MainV03.exe Rodin2.hs
Dar asa e bine (dar nu uitati la RodinV05-Ro sa scrieti cuvintele cheie pe romaneste conform listei de echivalente de mai jos.)

{ let y =2;
  let x=100;
  while (x>10)
    let x=x-(let y = 1);
  print x;
  print y;
}

S5) \" este " ca si in C
Deci mesajul: 
unexpected "\""
expecting space or expresion
inseamna ca a gasit o " neasteptata in string-ul de intrare

S6) Recomandare: Desi in teorie numele variabilelor
poate sa inceapa cu orice litera, Rodin nu accepta (cel putin acest prototip)
variabile care incep cu aceeasi litera ca si cuvintele cheie. 
(deoarece are un fel de scannerless parser).
NU FOLOSITI VARIABILE CARE INCEP LA FEL CA SI
CUVINTELE CHEIE,deci evitati: d a c f p r s t
sau prefixati variabilele cu o litera
cum ar fi m.  

Iata `cuvintele` cheie din Rodin, desi unele nu sunt cuvinte ci 
adevarate sintagme:

if = "daca"
then = "atunci"
else = "altfel"
let = "fie"
while = "cat timp" 
do = "executa"   / in versiunile vechi era "socoteste"
print = "scrie"
read = "tasteaza"
begin = "{"
end = "}"
repeat = "repeta"
until = "pina cand"
for = "pentru"

'Egalitatile' sugereaza cu ce alte cuvinte din alte limbaje de programare se aseamana cuvintele din limbajul Rodin.

Lista este orientativa, n-ar fi exclus s-o mai schimbam daca gasim motive intemeiate pentru a face acest lucru.


s7) Nu incepeti programul cu un rand liber ! 
Rodin va da eroare gasind acel Enter.

s8) Puneti imediat ; dupa atribuirea 
fie x=0;  asa e bine 
dar nu asa  
fie x=0 ; 

s9) dupa "socoteste" /"executa" deschideti pe acelasi rand acolada,
puneti un spatiu (macar) intre "socoteste"/"executa" si acolada.

Atentie, una din versiunile mai vechi ale Limbajului foloseste "socoteste" alta "executa". Orientati-va dupa numarul ei si data de lansare pentru a le deosebi.


. Putem contribui la dezvoltarea Rodin ?

Daca stiti Haskell si extensiile sale, daca cunoasteti transformatori de monade, daca ati folosit parsere modulare, atunci da. Ca alternativa sper sa pot publica un mic ghid dupa care un necunoscator al acestora sa poata scrie totusi componente pentru Rodin.

Alt mod de a contribui la dezvoltarea Rodin este sa scrieti pur si simplu programe in Rodin si sa le postati pe aceasta pagina sau sa mi le trimiteti prin e-mail. Ma oblig sa le verific inainte, daca nu sunt prea complicate sau prea multe. (Altfel n-as avea timp indeajuns pentru ele.)

. Faceti si instruire in priviinta Rodin ?

Da, daca exista cerere. Voi anunta prin e-mail.

. Pe ce notiuni se bazeaza Rodin ?

Pe notiuni de teoria categoriilor, monade, semantici monadice modulare si altele despre care am scris mai sus.

. Ar putea un elev de liceu sa programeze in limbajul Rodin sau sa fie beta tester ?

Cu siguranta. Limbajul a fost inventat tocmai cu acest gand in minte, sa fie accesibil elevilor si profesorilor incepoatori. Dar totusi sa fie suficient de strict ca sa te oblige sa deprinzi disciplina programarii.

. Ce are de facut un beta tester Rodin

Daca ati dori sa deveniti beta tester Rodin si sa experimentati limbajul la primele ore de programare v-as trimite urmatoarea scrisoare:

"Pe scurt, ce ar fi de facut:

Sa programati intr-un fel de pseudocod mici programe care fac calcule cu numere intregi. Software-ul vi-l ofer gratuit. Va trimit si o mica documentatie. Programele care merg mi le trimiteti cu mentiunea ca sunt bune si v-au iesit cum va asteptati. Cele care nu va ies cum va asteptati va rog sa mi le trimiteti (totusi) ca sa verific daca este corect implementat limbajul. Pseudocodul propus este un fel de mini C, fara declaratii, doar cu intregi (deocamdata) si e scris cu instructiuni in limba romana. Daca simtiti nevoia unor corecturi sau adaugiri la limbaj, va rog sa imi spuneti, astfel pot sa continui sa-l dezvolt.

Banuiesc ca aveti exemple de programe in pseudocod, pentru lectii, nu-i asa ? Trebuiesc doar scrise cu un vocabular anume, folosind cuvinte romanesti, fara declaratii. Iata niste exemple minuscule:

Ex: {tasteaza x; scrie x;}

Ex2: {tasteaza x; fie x=x+1; scrie x;}

Va descurcati sa scrieti asemenea programe si chiar unele mai complicate, nu-i asa ?

Software-ul ocupa o discheta sau poate fi descarcat de pe web.

P.Dan "

. Ce cunostinte ar trebui sa aiba cineva ca sa utilizeze Limbajul Rodin ?

Minim: Deschiderea unei console Windows cu Run-> Command -> cmd apoi tastarea unei linii de comenzi. Plus cateva cunostinte despre limbajul C cu care Rodin se aseamana.
Mediu: C la un nivel didactic. Abilitatea de a intelege C-ul dincolo de cuvintele sale cheie.
Maxim: C si lambda calcul, daca doriti sa exploatati puterea unor expresii speciale (lambda expresiile numite abstractii).

. De ce exemplele de pe lista de subtilitati sunt in engleza ?

Natural, facand cercetare pentru prezentarea la o intalnire stiintifica internationala, primele experimente au fost in limba engleza. Dorim tare mult sa sustinem simultan abele versiuni de Rodin: Rodin-Ro si Rodin-En, fiecare folosind alt set de cuvinte cheie. Afirm ca s-ar putea trece de la Rodin-Ro la C prin intermediul Rodin-En, eventual folosindu-l ca suport pentru realizarea temelor. (Ipoteza. Ce zic specialistii in pedagogia informaticii ?) Am inceput sa adaug pe lista de subtilitati exemple in Rodin-Ro (adica scrise pe romaneste.).

. Puteti realiza versiuni de Rodin in limbile minoritatilor nationale ?

Putem. Nu inseamna insa ca vor fi gata tot in 4 zile, mai ales ca vacanta de vara 2008 s-a terminat.

. De unde mai aflam vesti despre Rodin ?

De pe site-ul proiectului http://www.haskell.org/haskellwiki/Rodin. Voi trimite beta testerilor si cate-o notificare din cand in cand dar acest site din domeniul Haskell.org ramane sursa principala de informatii despre proiectul Rodin. Nu apelati la mirror-uri.

. Dati si diplome de participare profesorilor implicati in program ?

De ce nu ? Din partea mea, da. Urmeaza sa alegem organizatia / institutia / departamentul care va pune stampila finala pe diplome. Dar aceste diplome vor fi oferite abia DUPA ce respectivii vor publica o serie de programe Rodin pe site, ocazie cu care le fac cunoscute numele.

. Se va putea contribui la site direct ?

Da, avem in vedere si acest fel de colaborare atunci cand numarul profesorilor participanti va depasi o anumita limita. Contactati-ma si rezolvam si aceasta problema. Dar cei care o vor face raspund pentru corectitudinea a ceea ce scriu.


Pagina proiectului Rodin este in dezvoltare. Vizitati-o regulat pentru a gasi update-urile, noutatile precum si programele si exercitiile noi adaugate.