Lava (programmeringsspråk)

Lava är ett experimentellt, visuellt objektorienterat , tolkbaserat programmeringsspråk med tillhörande programmeringsmiljö (Lava Programming Environment eller LavaPE ) som använder strukturredigerare istället för textredigerare . Endast kommentarer, konstanter och nya identifierare får anges som text.

Deklarationer representeras i LavaPE som trädstrukturer vars underträd kan kollapsas eller expanderas. Egenskaperna för de deklarerade Lava- entiteterna kan redigeras genom popup-dialoger.

Även om körbar kod har en traditionell textrepresentation i LavaPE, kan den endast redigeras som kompletta syntaktiska enheter, snarare än tecken för tecken. Om du infogar en ny syntaktisk konstruktion kommer den vanligtvis att innehålla "platshållare" (syntaktiska variabler) som sedan kan ersättas av konkreta konstruktioner; den senare kan i sin tur innehålla syntaktiska variabler etc. LavaPE tillhandahåller en verktygsknapp för varje typ av syntaktisk konstruktion, och en knapp är endast aktiverad om det är syntaktisk korrekt att infoga den associerade konstruktionen på den valda platsen.

Ytterligare karakteristiska egenskaper hos Lava och LavaPE inkluderar följande:

  • Det ger strikt syntaktisk separation av gränssnitt (offentliga) och implementering (privata) sektioner av en Lava klass .
  • Den skiljer variabla "tillståndsobjekt" från konstanta "värdeobjekt"; den senare kan inte längre ändras efter skapande/initiering.
  • Den stöder "virtuella typer": typparametrar för klasser och paket (familjer av relaterade klasser). Som en följd av detta krävs inte längre undergrävning av starka typkontroller genom "typkastningar".
  • Den använder rekursion och logiska kvantifierare istället för traditionella loopkonstruktioner .
  • Den använder enstaka tilldelning ; dvs ett värde kan tilldelas en variabel endast en gång inom samma gren av en funktion.
  • Den stöder refaktorering i stor utsträckning via LavaPE-strukturredigerare.
  • Den skiljer mellan beståndsdelar (underobjekt) och objektbekanta (pekare till oberoende objekt). Kopiering och radering av komplexa objekt underlättas till stor del på detta sätt.
  • Sedan release 0.9.0 förhindrar LavaPE helt oavsiktlig åtkomst till oinitierade variabler och nollobjekt redan vid programmeringstillfället genom fullständiga statiska initieringskontroller.

Lava är programvara med öppen källkod som använder GPL -licensen (se även Lava på Free Software Foundation och på KDE-Apps.org ). Den körs för närvarande på Microsoft Windows , Linux och Mac OS X- plattformar.

Källor

externa länkar