Coding

Programmare con l’intelligenza artificiale: ecco fin dove ChatGpt può arrivare



Indirizzo copiato

La programmazione è un’area in cui l’IA avrà un impatto significativo, consentendo anche l’automazione di compiti di base. A ChatGPT è già possibile chiedere la scrittura di script e programmi, l’analisi di codice già scritto o anche la traduzione di programmi da un linguaggio a un altro. E siamo solo all’inizio

Pubblicato il 21 feb 2023

Antonio Cisternino

Università di Pisa



script

Le capacità di interloquire in linguaggio naturale con ChatGPT hanno reso rapidamente popolare l’intelligenza artificiale, ma uno dei suoi talenti meno noti è quello di una notevole conoscenza dei linguaggi di programmazione. È infatti possibile sia chiedere la scrittura di script e programmi oppure l’analisi di codice già scritto alla ricerca di specifiche proprietà, come ad esempio difetti. Infine è possibile chiedere la traduzione di programmi da un linguaggio di programmazione ad un altro.

Le capacità di ChatGPT nello scripting

Nonostante le ricche interfacce grafiche di cui disponiamo, scrivere uno script è ancora spesso la via più efficiente per automatizzare azioni di sistema. Come sempre la fantasia nella scrittura del prompt è essenziale nel determinare la risposta.

Consideriamo il seguente esempio:

Immagine che contiene testo Descrizione generata automaticamente

Lo script generato è corretto, e sicuramente è apprezzabile il fatto che l’AI abbia generato i nomi di tutti e 8 degli ipotetici server nonostante il prompt ne abbia elencati 3.

Provando a porre una domanda più difficile si può chiedere uno script capace di trovare i file il cui nome contiene un numero tra 0 e 100. Dopo 3 generazioni di risposte quasi corrette (ma con errori significativi) ho ottenuto uno script che approssimativamente fa la cosa giusta (purtroppo riconosce anche i file che nel nome contengono numeri fino a 999).

Immagine che contiene testo Descrizione generata automaticamente

Come spiega correttamente il test sul nome del file è effettuato dall’espressione regolare “[0-9]{1,3}” che riconosce una sequenza di 1, 2 o 3 occorrenze di caratteri compresi tra 0 e 9.

Se chiediamo di tradurlo in powershell otteniamo una versione corretta dello stesso script:

Immagine che contiene testo Descrizione generata automaticamente

Si possono chiedere numerosi script e, per richieste non troppo complesse, ottenere risposte assolutamente corrette, al punto che può valere la pena per un sistemista chiedere a ChatGPT la generazione dello script di cui si ha bisogno per poi aggiustarlo per le proprie esigenze. Uno dei vantaggi è infatti che l’AI ricorda meglio di un uomo (o quantomeno meglio di me) i numerosi parametri dei vari comandi.

Come se la cava ChatGPT con la programmazione

Si può chiedere la scrittura di un programma, ad esempio di un programma che stampi l’insieme di Mandelbrot (usando il linguaggio F# per motivi di compattezza).

Immagine che contiene testo Descrizione generata automaticamente

Dopo quattro generazioni il risultato non è ancora subito eseguibile, agli occhi di un programmatore salta subito all’occhio che manca l’apertura dello spazio dei nomi System.Numerics dove è definita la classe Complex (con la ‘C’ maiuscola). Inoltre la funzione abs si applica solo ai numeri reali mentre z.Magnitude andava usato al suo posto.

Il risultato è comunque sorprendente e il programma con piccoli aggiustamenti effettivamente mostra l’insieme di Mandelbrot (il programma stampa asterischi ma la forma del frattale si vede bene come evidenziato dalla controparte grafica).

Immagine che contiene testo Descrizione generata automaticamente
À quoi correspondent les figures de Mandelbrot ? - Couleur-Science ...

Se proviamo a chiedere a ChatGPT che errori trova nel programma generato si ottiene una risposta evasiva:

Immagine che contiene testo Descrizione generata automaticamente

Le considerazioni che fa sono assolutamente condivisibili, ma non è in grado di individuare gli errori di tipo che rendono il programma difficile da eseguire.

Ma non è un caso: ChatGPT ha già evidenziato problemi con le discipline esatte come la matematica, non sembra infatti in grado di astrarre i concetti dietro la sintassi utilizzata e può quindi generare output errati come in questo caso. Nei vari tentativi che ho fatto ad esempio ho ottenuto il programma sostanzialmente corretto ma venivano usati numeri reali al posto dei numeri complessi ottenendo un programma completamente errato anche se assomigliava molto a quello corretto.

È però inesatto dire che non è assolutamente in grado di astrarre, in alcuni casi fa delle astrazioni sorprendenti arrivando a trovare l’errore in un piccolo programma:

Sia l’analisi che la spiegazione e la soluzione sono corrette.

Imparare a programmare con ChatGPT

Ci si può chiedere se si possa imparare a programmare dialogando con l’AI. Ecco un primo esempio:

Possiamo anche chiedere l’implementazione di un particolare algoritmo come il QuickSort:

Immagine che contiene testo Descrizione generata automaticamente

Un’applicazione molto utile è quella della traduzione dei programmi, è infatti possibile chiedere a ChatGPT di tradurre le stringhe di un programma risparmiando tempo nella sua traduzione:

Il programma viene mantenuto e solo le stringhe al suo interno vengono tradotte.

Le applicazioni nel mondo della programmazione

Intanto, però, ha fatto notizia la decisione di Amazon che ha proibito ai propri programmatori di utilizzare ChatGPT per evitare il rischio che i frammenti di codice sottomessi all’intelligenza artificiale vengano utilizzati anche per apprendere rimanendo in qualche modo all’interno dell’AI. Nella nota inviata si fa riferimento a casi sospetti in cui il codice generato da ChatGPT assomigliasse troppo a quello interno ad Amazon.

Il dato di fatto è però che dei professionisti si appoggiavano a una AI per essere più produttivi nella gestione di programmi, sottoponendo frammenti di codice e chiedendone analisi varie. Le semplici tecniche analizzate in questo articolo sono quindi utili anche per usi professionali e aprono a scenari nuovi anche nel mondo della programmazione, con la possibilità che l’AI venga integrata in strumenti di programmazione al fine di rendere più efficiente la codifica. Già oggi Visual Studio di Microsoft propone frammenti di codice mentre si scrive, ma non è ancora in grado di generare funzioni o analizzare interi programmi.

Gli usi impropri

Sono noti anche usi impropri di questa tecnologia: esistono sistemi di phishing generati da ChatGPT, che consentono ad hacker di ottenere preziosi frammenti di codice con testi in tutte le lingue del mondo, contribuendo a creare messaggi sempre più plausibili con cui è più facile che gli utenti interagiscano inserendo le proprie credenziali.

Un aspetto centrale della questione è che il codice generato, o analizzato può produrre risposte errate, e questo è un fatto da non sottovalutare poiché programmatori pigri potrebbero introdurre involontariamente bug e comportamenti errati nei propri programmi solo a causa dell’uso di questo supporto. Si tratta di un aspetto decisamente delicato poiché i sistemi digitali, e quindi i programmi, sottendono ormai alla maggior parte delle attività nella nostra vita.

Conclusioni

In ogni caso la programmazione è un’area in cui l’intelligenza artificiale avrà un impatto significativo, consentendo anche l’automazione di compiti di base. Nell’immediato il sistema non sembra in grado di sostituire un programmatore esperto, ma in fondo siamo solo all’inizio. In futuro è plausibile pensare a sistemi capaci di acquisire la specifica in linguaggio naturale di un programma, di generare il programma corrispondente ed eseguirlo, coronando la previsione fatta all’inizio degli anni 50 nel secolo scorso da Alan Turing secondo la quale le macchine avrebbero a un certo punto generato autonomamente le “tabelle” (ovverosia i programmi) senza il bisogno dell’intervento umano.

EU Stories - La coesione innova l'Italia

Tutti
Analisi
Video & Podcast
Social
Iniziative
Scenari
Il quadro economico del Sud: tra segnali di crescita e nuove sfide
Sostenibilità
Lioni Borgo 4.0: un passo verso la città del futuro tra innovazione e sostenibilità
Podcast
Centro Servizi Territoriali: uno strumento per accompagnare gli enti nell’attuazione della politica di coesione. Il podcast “CapCoe. La coesione riparte dalle persone”
Podcast
EU Stories, il podcast | Politiche di coesione e comunicazione: una sinergia per il futuro
Opinioni
La comunicazione dei fondi europei da obbligo ad opportunità
eBook
L'analisi della S3 in Italia
Norme UE
European Accessibility Act: passi avanti verso un’Europa inclusiva
Agevolazioni
A febbraio l’apertura dello sportello Mini Contratti di Sviluppo
Quadri regolamentari
Nuovi Orientamenti sull’uso delle opzioni semplificate di costo
Coesione
Nuovo Bauhaus Europeo (NEB): i premi che celebrano innovazione e creatività
Dossier
Pubblicato il long form PO FESR 14-20 della Regione Sicilia
Iniziative
400 milioni per sostenere lo sviluppo delle tecnologie critiche nel Mezzogiorno
Formazione
“Gian Maria Volonté”: dalle aule al mondo del lavoro, focus sui tirocini della Scuola d’Arte Cinematografica
TRANSIZIONE ENERGETICA
Il ruolo del finanziamento BEI per lo sviluppo del fotovoltaico in Sicilia
Formazione
“Gian Maria Volonté”: dalla nascita ai progetti futuri, focus sulla Scuola d’Arte Cinematografica. Intervista al coordinatore Antonio Medici
MedTech
Dalla specializzazione intelligente di BionIT Labs una innovazione bionica per la disabilità
Finanza sostenibile
BEI e E-Distribuzione: investimenti per la sostenibilità energetica
Professioni
Servono competenze adeguate per gestire al meglio i fondi europei
Master
Come formare nuove professionalità per governare e gestire al meglio i fondi europei?
Programmazione UE
Assunzioni per le politiche di coesione: prossimi passi e aspettative dal concorso nazionale. Il podcast “CapCoe. La coesione riparte dalle persone”
innovazione sociale
Rigenerazione urbana: il quartiere diventa un hub dell’innovazione. La best practice di San Giovanni a Teduccio
Programmazione europ
Fondi Europei: la spinta dietro ai Tecnopoli dell’Emilia-Romagna. L’esempio del Tecnopolo di Modena
Interventi
Riccardo Monaco e le politiche di coesione per il Sud
Iniziative
Implementare correttamente i costi standard, l'esperienza AdG
Finanziamenti
Decarbonizzazione, 4,8 miliardi di euro per progetti cleantech
Formazione
Le politiche di Coesione UE, un corso gratuito online per professionisti e giornalisti
Interviste
L’ecosistema della ricerca e dell’innovazione dell’Emilia-Romagna
Interviste
La ricerca e l'innovazione in Campania: l'ecosistema digitale
Iniziative
Settimana europea delle regioni e città: un passo avanti verso la coesione
Iniziative
Al via il progetto COINS
Eventi
Un nuovo sguardo sulla politica di coesione dell'UE
Iniziative
EuroPCom 2024: innovazione e strategia nella comunicazione pubblica europea
Iniziative
Parte la campagna di comunicazione COINS
Interviste
Marco De Giorgi (PCM): “Come comunicare le politiche di coesione”
Analisi
La politica di coesione europea: motore della transizione digitale in Italia
Politiche UE
Il dibattito sul futuro della Politica di Coesione
Mobilità Sostenibile
L’impatto dei fondi di coesione sul territorio: un’esperienza di monitoraggio civico
Iniziative
Digital transformation, l’Emilia-Romagna rilancia sulle comunità tematiche
Politiche ue
Fondi Coesione 2021-27: la “capacitazione amministrativa” aiuta a spenderli bene
Finanziamenti
Da BEI e Banca Sella 200 milioni di euro per sostenere l’innovazione di PMI e Mid-cap italiane
Analisi
Politiche di coesione Ue, il bilancio: cosa ci dice la relazione 2024
Politiche UE
Innovazione locale con i fondi di coesione: progetti di successo in Italia
Scenari
Il quadro economico del Sud: tra segnali di crescita e nuove sfide
Sostenibilità
Lioni Borgo 4.0: un passo verso la città del futuro tra innovazione e sostenibilità
Podcast
Centro Servizi Territoriali: uno strumento per accompagnare gli enti nell’attuazione della politica di coesione. Il podcast “CapCoe. La coesione riparte dalle persone”
Podcast
EU Stories, il podcast | Politiche di coesione e comunicazione: una sinergia per il futuro
Opinioni
La comunicazione dei fondi europei da obbligo ad opportunità
eBook
L'analisi della S3 in Italia
Norme UE
European Accessibility Act: passi avanti verso un’Europa inclusiva
Agevolazioni
A febbraio l’apertura dello sportello Mini Contratti di Sviluppo
Quadri regolamentari
Nuovi Orientamenti sull’uso delle opzioni semplificate di costo
Coesione
Nuovo Bauhaus Europeo (NEB): i premi che celebrano innovazione e creatività
Dossier
Pubblicato il long form PO FESR 14-20 della Regione Sicilia
Iniziative
400 milioni per sostenere lo sviluppo delle tecnologie critiche nel Mezzogiorno
Formazione
“Gian Maria Volonté”: dalle aule al mondo del lavoro, focus sui tirocini della Scuola d’Arte Cinematografica
TRANSIZIONE ENERGETICA
Il ruolo del finanziamento BEI per lo sviluppo del fotovoltaico in Sicilia
Formazione
“Gian Maria Volonté”: dalla nascita ai progetti futuri, focus sulla Scuola d’Arte Cinematografica. Intervista al coordinatore Antonio Medici
MedTech
Dalla specializzazione intelligente di BionIT Labs una innovazione bionica per la disabilità
Finanza sostenibile
BEI e E-Distribuzione: investimenti per la sostenibilità energetica
Professioni
Servono competenze adeguate per gestire al meglio i fondi europei
Master
Come formare nuove professionalità per governare e gestire al meglio i fondi europei?
Programmazione UE
Assunzioni per le politiche di coesione: prossimi passi e aspettative dal concorso nazionale. Il podcast “CapCoe. La coesione riparte dalle persone”
innovazione sociale
Rigenerazione urbana: il quartiere diventa un hub dell’innovazione. La best practice di San Giovanni a Teduccio
Programmazione europ
Fondi Europei: la spinta dietro ai Tecnopoli dell’Emilia-Romagna. L’esempio del Tecnopolo di Modena
Interventi
Riccardo Monaco e le politiche di coesione per il Sud
Iniziative
Implementare correttamente i costi standard, l'esperienza AdG
Finanziamenti
Decarbonizzazione, 4,8 miliardi di euro per progetti cleantech
Formazione
Le politiche di Coesione UE, un corso gratuito online per professionisti e giornalisti
Interviste
L’ecosistema della ricerca e dell’innovazione dell’Emilia-Romagna
Interviste
La ricerca e l'innovazione in Campania: l'ecosistema digitale
Iniziative
Settimana europea delle regioni e città: un passo avanti verso la coesione
Iniziative
Al via il progetto COINS
Eventi
Un nuovo sguardo sulla politica di coesione dell'UE
Iniziative
EuroPCom 2024: innovazione e strategia nella comunicazione pubblica europea
Iniziative
Parte la campagna di comunicazione COINS
Interviste
Marco De Giorgi (PCM): “Come comunicare le politiche di coesione”
Analisi
La politica di coesione europea: motore della transizione digitale in Italia
Politiche UE
Il dibattito sul futuro della Politica di Coesione
Mobilità Sostenibile
L’impatto dei fondi di coesione sul territorio: un’esperienza di monitoraggio civico
Iniziative
Digital transformation, l’Emilia-Romagna rilancia sulle comunità tematiche
Politiche ue
Fondi Coesione 2021-27: la “capacitazione amministrativa” aiuta a spenderli bene
Finanziamenti
Da BEI e Banca Sella 200 milioni di euro per sostenere l’innovazione di PMI e Mid-cap italiane
Analisi
Politiche di coesione Ue, il bilancio: cosa ci dice la relazione 2024
Politiche UE
Innovazione locale con i fondi di coesione: progetti di successo in Italia

Articoli correlati

Articolo 1 di 2