Lava
Lava este un limbaj de programare experimental, vizual, orientat către obiecte, bazat pe interpreți, cu un mediu de programare asociat (mediu de programare lava sau lavape) care folosește editori de structură în loc de editori de text.
Doar comentarii, constante și identificatori noi pot fi introduse ca text.
Declarațiile sunt reprezentate în lavape ca structuri de arbori ale căror subtree pot fi prăbușite sau extinse.
Proprietățile entităților de lavă declarate pot fi editate prin dialoguri pop-up.
Deși codul executabil are o reprezentare tradițională a textului în lavape, acesta poate fi editat doar ca unități sintactice complete, mai degrabă decât un caracter după caracter.
Dacă introduceți o nouă construcție sintactică, acesta va conține de obicei „locații” (variabile sintactice) care pot fi apoi înlocuite cu construcții concrete; Acesta din urmă poate conține, la rândul său, variabile sintactice, etc.
Lavape oferă un buton de instrumente pentru fiecare tip de construcție sintactică, iar un buton este activat numai dacă este corect sintactic pentru a insera construcția asociată la locul selectat.
Proprietățile caracteristice suplimentare ale lava și lavape includ următoarele: oferă o separare sintactică strictă a secțiunilor de interfață (publice) și implementare (private) ale unei clase de lavă.
Distinge variabila „obiecte de stare” de la „obiecte de valoare” constante ”; Acesta din urmă nu poate fi modificat mai mult după creare/inițializare.
Suportă „tipuri virtuale”: tipuri de tipuri de clase și pachete (familii de clase conexe).
În consecință, nu mai este necesară subminarea verificărilor de tip puternic de „distribuții de tip”.
Utilizează recursivitate și cuantificatori logici în loc de construcții tradiționale de buclă.
Folosește o singură alocare; adică, o valoare poate fi atribuită unei variabile o singură dată în aceeași ramură a unei funcții.
Suportă refactorizarea pe scară largă prin intermediul editorilor de structură de lavape.
Distincizează între constituenții (sub-obiecte) și cunoscuții obiectelor (indicii către obiecte independente).
Copierea și ștergerea obiectelor complexe este în mare parte facilitată în acest fel.
De la versiunea 0.9.0, Lavape previne complet accesul inadvertent la variabile neinițializate și obiecte nule deja la timpul de programare prin verificări complete de inițializare statică.lava este software open source folosind licența GPL (a se vedea, de asemenea .org).
În prezent rulează pe platforme Microsoft Windows, Linux și Mac OS X.