Rodin/FAQ
http://www.haskell.org/wikiupload/2/2c/BannerProLinuxAndHaskell.gif
La facultate poti invata unul din cele mai productive limbaje: Haskell.
. Intrebari despre Rodin, un limbaj care a fost implementat in Haskell
Cum se pronunta Rodin ? Raspuns: Ca si numele sculptorului Rodin sau ca RO Dan. Sau ca Pro Dan fara prima litera. Daca nu sunteti siguri, regulile ortografiei va permit sa-l pronuntati ca si cum l-ati citi litera cu litera: RO Din. Mi s-a spus si ca regionalismul rodin ar insemna dar facut unui copil, conform ritualului. (dar n-am verificat)
. Ce este Rodin ?
1.Pentru profesorul de informatica Rodin este 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.
2.Pentru cercetatori si dezvoltatori Rodin este o Platforma de dezvoltare a limbajelor de programare modulare. Un veritabil Lego Sintactico-Semantic ce ne permite sa construim limbaje imbinand pur si simplu piesele lor. Daca aveti doua limbaje implementate in Rodin puteti dezvolta oricand pe oricare dintre ele adaugand imediat in el un modul din celalalt care implementeaz o instructiune, sau un operator sau altceva. Si nu numai atat. Deocamdata avem un numar relativ mic de piese ale acestui Lego dar producem asemenea piese in continuare. Urmariti adaugarea pieselor in limbaj in rubrica Rodin/Download.
. Sintaxa
Veti gasi aici sintaxa unei versiuni depasite a limbajului. Ro/Sintaxa Limbajului Rodin Mergeti la http://www.haskell.org/haskellwiki/Ro/Sintaxa_Limbajului_Rodin).
Cele mai bune exemple si documentatii sunt in arhivele .ZIP noi de pe pagina Rodin/Download.
Limbajele din clasa C-ului, fie ca este vorba de limbaje pentru software de proiectare (Solid Works ??) fie ca este vorba de limbaje de programare sau limbaje de (web-)scripting au in general o sintaxa asemanatoare. Necazul este ca un incepator trebuie sa invete SIMULTAN si semnificatia instructiunilor - impreuna cu acele concepte fundamentale ascunse in spatele lor - si cuvintele englezesti cu care se scriu programele. Si asta stiind uneori doar romana, franceza sau rusa. Greselile devin in acest caz mult mai usor de facut.
Pentru a nu ajunge in situatia proiectantilor din imaginea de mai sus este recomandabil sa se predea intai conceptele in limba romana (sub forma de pseudocod), urmate de cuvintele cheie englezesti. Deoarece studentii si elevii pot protesta (pe drept cuvant) ca vin in laboratorul de informatica si fac pseudocod la tabla fara sa puna mina pe calculatoare (voi adauga link-ul ...) am realizat Limbajul Pseudocod Rodin, care rezolva aceasta problema. Si, bineinteles produce altele :)
. 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 , 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)
Va multumesc pentru interesul dumneavoastra domnule profesor M.J. Cod sursa comentat despre interpretoarele monadice modulare gasiti sau veti gasi in volumul [[Practica interpretarii monadice] Aici e pagina web a acestei carti:Practica interpretarii monadice. De asemenea o introducere in semanticile monadice modulare scrise in Haskell ati putea gasi in volumul Introducere in Haskell 98 prin exemple - dar la nivel studentesc. Sursele proiectului Rodin vor fi publicate, ma gandesc inca sub ce forma, poate in viitoarea carte Transformers - nu dati click ca nu e pagina gata.
Multumesc pe aceasta cale inca o data tuturor acelora care mi-au transmis impresiile lor despre limbajul pseudocod Rodin, asa cum este el astazi, (versiunile: Rodin ExperimentExp8 si 10, 12).
. 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.
Daca aveti timp, explicati-mi denumirea acordata acestui produs. Confuzia cu numele sculptorului a fost dorita ori pur si simplu este intamplatoare? (intreaba Gabriella K.)
Pur si simplu incercam sa descriem un limbaj DIN ROmânia, printr-un cuvant. Dinro ar fi sunat ca intr-un serial de desene animate, mai ales daca-l uitam, pe R. Asa ca am schimbat ordinea. E drept ca nu e un nume inspirat ales, deoarece este imposibil sa-l gasiti cu Google sau Yahoo si deja mai exista la nivel European cel putin un proiect Rodin, din fericire finalizat.
. 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 ! Decat,poate, daca incercati "Limbaj pseudocod si cititi a treia pagina." Sau incercati sa cautati "Limbajul Pseudocod Rodin". Sau mergeti direct la http://www.haskell.org/haskellwiki/Rodin.
. De unde descarc ultima versiune Rodin ?
De la Rodin/Download. Cititi inainte si Rodin/News.
. 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 "Rodin/Download", de la inceputul acestei pagini. De la un alt beta tester Rodin. Din rubrica download de pe pagina principala Rodin.
. Cine este autorul Rodin ?
Dan V.Popa. Actualmente, lucreaza la Facultatea de Stiinte de la Universitatea din 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
De la Rodin ExperimentExp8 din august 2009 incolo, ExperimentExp10 "tasteaza" este inlocuit cu "citeste" iat ultimul ; din secventa { ... } de instructiuni nu mai este necesar, ba chiar este inutil.
{ citeste x;
text "x este =";
scrie x
}
sau altul
{ citeste x;
fie x=x+1;
text "x este =";
scrie x
}
. Unde gasim alte exemple de programe in Rodin ?
Cele mai noi exemple sunt in arhivele care insotesc fiecare lansare de versiune Rodin. Aici vom posta ocazional Exemple de programe in Pseudocod Rodin imediat ce vin de la beta testeri si le verificam, in timpul anului scolar. Avem si o pagina: Ro/Rodin/Alte exemple la care mai avem de lucru. Ambele pagini sunt mai vechi, din 2008 si reflecta stadiul de atunci al evolutiei Rodin.
Vedeti ca am mai adaugat in nov 2009 o arhiva minuscula cuprinzand exemple pentru incepatorii absoluti. Este la punctul 4. pe pagina principala Rodin.
. 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 Ghid al Dezvoltatorului Rodin din care un necunoscator al teoriei sa poata afla 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 privinta Rodin ?
Da,exista cerere. Deja a avut loc o prima intalnire cu acele cadre didactice interesate de Limbajul Pseudocod Rodin. Va mai fi probabil una in perioada de inceput a anului scolar dar sa nu anticipam.
. Pe ce notiuni se bazeaza Rodin ?
Pe notiuni de teoria categoriilor, monade, semantici monadice modulare si altele despre care am scris mai sus. Dar aceste aspecte sunt transparente pentru utilizator.
. 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 incepatori. Dar totusi sa fie suficient de strict ca sa te oblige sa deprinzi disciplina programarii. Si suficient de expresiv ca sa ilustreze clar notiunile programarii structurate.
. 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:
" Stimate domnule/doamna Profesor
Privitor la lectiile de clasa a IX-a folosind Rodin iata, pe scurt, ce ar fi de facut:
Sa programati intr-un fel de pseudocod - caci sa ceva este Rodin - mici programe care fac calcule cu numere intregi. Software-ul vi-l ofer gratuit. Va trimit si o mica documentatie si un pachet de programe pentru lectii. Programele dumneavoastra care merg va rog sa 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 si vectori (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 (pentru versiuni mai noi decat Rodin V08, inclusiv):
Ex: {citeste x; scrie x;}
Ex2: {citeste x; fie x=x+1; scrie x;}
Atentie la versiunile mai noi: Ultimul ; din secventa este scos din sintaxa.
Ex: {citeste x; scrie x}
Ex2: {citeste x; fie x=x+1; scrie x}
Va descurcati sa scrieti asemenea programe si chiar unele mai complicate, nu-i asa ?
Atunci va doresc succes !
Software-ul poate fi descarcat de pe web-site-ul Rodin. Sau din rubrica Download de pe pagina principala Rodin.
Dan V. Popa
Ro/Haskell
Facultatea de Stiinte,
Univ. "Vasile Alecsandri" din Bacau.
"
. 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).La anumite versiuni Rodin 2009a-e. Dar in versiunea Rodin Experiment Exp 12 nu sunt folosite.
. 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.
. Este ceva in neregula cu pagina despre sintaxa Rodin ?
Da, actualmente este depasita. Preferati exemplele din arhive. Dezvoltarea a luat-o inaintea documentarii. Ca idee, acum instructiunile sunt ceva diferit de expresii iar aplicarea functiilor anonime nu este reimplementata in Rodin Experiment Exp 12.
. Exista si matrice in Rodin ?
Nu. Deocamdata (Rodin Experiment Exp12 din august 2009) nu am implementat matricele desi trecerea de la variabile simple la vectori e la fel cu cea de la vectori la matrice, fie ca ma credeti fie ca nu. Am fost insa ocupat cu finalizarea tezei de doctorat, sustinuta deja in catedra.
. 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, asa cum se vede. Nu considerati proiectul Rodin o sursa de diplome si punctaje pentru ochi frumosi ca nu este.
. 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.
. Indicatii de lucru cu limbajul pseudocod Rodin
Editati cu editorul preferat si pastrati fisierele sursa grupate in dosare in care aveti si versiunea de Rodin necesara rularii lor. Daca se ajunge sa existe incompatibilitati (ca la .doc -urile M$) intre diversele versiuni e bine sa aveti la indemana veriunea sub care anumite exemple rulau. Tineti lista de cuvinte cheie si foaia cu sintaxa limbajului la indemana.
. Ce facem daca un program nu ruleaza corect ?
Cititi la pagina Rodin/CeSaFac.
. Cum sa salvez installerul binar ?
Daca salvandu-l ati obtinut un fisier Installler.exe.bin si nu unul Installer.exe atunci la download-ul urmator alegeti, dupa schimbarea numelui din Installer.bin in Installer.exe, pe randul urmator, optiunea All Files (cand descarcati din Windows XP ). Veti obtine un fisier Installer.exe in urma redenumirii.
. Istoricul acceselor la pagina principala Rodin
Il gasiti la pagina Rodin/History. Oricum, contorul a trecut binisor de 5000 de click-uri si se apropie vertiginos de 6000.
. Probleme la a vedea aceasta pagina ?
Puteti seta computerul sa afiseze o imagine cu dimensiuni 1280 x 768 la 60 Hz rata de reimprospatare (refresh) chiar si cu un monitor care suporta doar 1024 x 768 la 60Hz.
ATENTIE: Acest reglaj se poate face numai cu placi video mai noi, (de exemplu cu unele din seria Intel 865 si superioare).
ATENTIE: Folosirea unor FRECVENTE de refresh MAI MARI de 60Hz cu unele monitoare analogice (au butoane care se INVIRT pentru a regla contrastul) poate duce la distrugerea sincroprocesorului analogic.
. Atribuirea
Deocamdata exista in limbajul Rodin doua feluri de atribuiri:
1. Atribuiri de variabile simple
- fie <name> = <expr>
2. Atribuiri de elemente de vector
- fie <vect>[<exp>] = <exp>
Si unele si altele incep ca in Basic cu fie. Expresia din paranteza patrata este indicele vectorului.
Nu sunt inca implementate (v 2009e)
- matrice
- partile stangi ale atribuirii (acei designatori ai locatiilor de memorie).