ewb Quaderno tecnico

22 luglio 2026 ยท Enrico Betti

EWB: una proposta per integrare un linguaggio con un preprocessore IA

Un esperimento funzionante in EWB per trattare la generazione assistita come un passaggio formale, contestualizzato e sottoposto a revisione umana.

Un foglio di codice attraversa un preprocessore meccanico a ingranaggi e ne esce con una proposta separata da verificare

Il problema non e' fare una domanda

Un assistente puo' generare codice in quasi ogni linguaggio. La qualita' della risposta, pero', dipende da cio' che conosce del progetto: architettura, contratti, stile, decisioni precedenti e trappole gia' incontrate. Copiare una domanda in una chat e ricostruire ogni volta quel contesto e' fragile e costoso.

EWB introduce per questo una richiesta direttamente nel sorgente:

AI("genera il codice necessario per questa operazione")

Non e' una chiamata eseguita dall'applicazione finale. E' un'istruzione formale destinata al preprocessore ewIA.

Il lavoro di ewIA

L'istruzione AI("richiesta") e' una richiesta formale rivolta all'assistente. Il preprocessore ewIA:

L'assistente non riceve quindi soltanto una frase, ma le informazioni necessarie per interpretarla secondo i contratti reali del sistema.

Un linguaggio che sa preparare il proprio contesto affinche' l'assistente non risponda da turista.

Perche' un preprocessore?

Il preprocessore mantiene l'uso dell'IA opzionale e separato dall'esecuzione del programma. Il programmatore formula la richiesta con una sola istruzione, ma la risposta non entra silenziosamente nel codice: viene prodotta prima della compilazione, resta visibile e puo' essere verificata, corretta oppure rifiutata.

Questa separazione conserva semplice anche l'implementazione. Il compilatore e la VM non devono conoscere modelli, protocolli o servizi esterni. Devono riconoscere soltanto una richiesta AI() non ancora risolta e segnalarla con l'eccezione esplicita Sezione AI non implementata, invece di nasconderla dietro un generico errore di sintassi.

Si ottengono cosi' semplicita' d'uso, controllo umano sul risultato e indipendenza del codice finale. Chi non vuole usare ewIA non introduce alcuna dipendenza; chi lo usa puo' sapere esattamente quale parte e' stata proposta dall'assistente prima di accettarla.

Generazione, non dipendenza

Il modello viene interrogato durante lo sviluppo, una volta. La VM non contiene un LLM e il programma distribuito non dipende dal servizio che ha prodotto la proposta. Dopo l'accettazione rimane codice EWB ordinario, leggibile, versionabile ed eseguibile deterministicamente.

Questo separa tre responsabilita': il programmatore dichiara l'intento, ewIA costruisce il contesto, l'assistente propone. La decisione resta umana. Una divisione dei poteri sorprendentemente civile, considerata la nostra moderata ambizione planetaria.

Da EWB agli altri linguaggi

Il meccanismo oggi funziona per EWB, ma non dipende dalla sintassi o dalla VM di EWB. Lo stesso modello potrebbe essere applicato a qualunque linguaggio: serve un preprocessore capace di riconoscere la richiesta, raccogliere il contesto e reinserire una proposta nel formato adatto al sorgente ospite.

La parte decisiva non e' la chiamata al modello. E' la base di conoscenza che accompagna la richiesta: documentazione reale, regole operative, convenzioni, stato del progetto e un organizer mantenuto nel tempo. Con materiali adeguati, il preprocessore puo' fornire all'assistente cio' che normalmente manca a una domanda isolata. Senza questa cura, si ottiene soltanto automazione dell'improvvisazione.

EWB e ewIA costituiscono quindi un caso concreto e gia' funzionante, ma anche una proposta piu' generale: integrare l'assistenza nel processo del linguaggio senza rendere l'IA parte obbligatoria del programma prodotto.

Una caratteristica distinta

Esistono linguaggi per orchestrare chiamate a modelli, linguaggi pensati per essere generati dagli LLM e ambienti di sviluppo che leggono istruzioni di progetto. Il modello EWB e' diverso: la richiesta di generazione appartiene al sorgente, il preprocessore raccoglie la conoscenza locale e il risultato torna nel sorgente come proposta da approvare.

Per quanto risulta dalla ricerca pubblica disponibile alla data di questo articolo, EWB e' il primo linguaggio a integrare un'istruzione AI() con questo specifico ciclo di generazione contestualizzata e revisione umana. La formulazione e' deliberatamente verificabile e potra' essere corretta se emergera' un precedente documentato.