ewb easyweb

EWB 2026

Un linguaggio piccolo, con un runtime abbastanza intelligente da fare il lavoro sporco.

Valori liberi, memoria persistente condivisa, esecuzioni programmate e sezioni di pagina autonome. La complessita' resta nel motore, dove possiamo sorvegliarla mentre meditiamo piani piu' ambiziosi.

a[3]["ciao"] = "7"

"7" + "3"       -> "10"
"7" concat "3"  -> "73"
"aaa" + "3"     -> eccezione

Il dato non protesta.
L'operatore, giustamente, si'.

Valori, non tipi

Una variabile puo' essere valore, array o insieme senza dichiarazioni preventive: a[3]["ciao"] = "7". Quel "7" e' insieme testo e numero: sara' l'operazione a decidere come usarlo.

Operatori responsabili

Gli operatori interpretano i due valori: "7" + "3" produce "10", mentre "aaa" + "3" solleva un'eccezione. Il dato resta libero; finalmente e' l'operatore ad assumersi le proprie responsabilita'.

Dataset

Un dataset e' memoria stabile e condivisa tra le sezioni del programma. Se il supporto non esiste viene creato automaticamente; istruzioni esplicite salvano e rileggono valori semplici, record o superstringhe strutturate.

Sezioni atomiche

lock e unlock racchiudono modifiche atomiche anche su piu' dataset. Sotto possono esserci transazioni SQL, commit e rollback; sopra rimane soltanto il contratto EWB. Il timeout con rollback ed eccezione e' previsto.

Task

Un task registra un punto di accesso, lo stack completo e una pianificazione in stile cron. A ogni scadenza riparte dalla fotografia salvata; se sta gia' girando non viene duplicato. revoke elimina l'automatismo.

Thread di pagina

Un thread e' un div aggiornabile a intervalli o su richiesta. La VM riceve punto di lancio, stack e parametri; il risultato riempie quella sezione della pagina. Non e' un thread di sistema: era troppo banale.

Dentro il covo

Lo stack EWB descrive gli strumenti che sostengono il linguaggio. L'articolo AI() nel sorgente racconta invece perche' una richiesta all'assistente e' diventata un'istruzione formale.