trasloco 3

Venerdì pomeriggio, tornato a casa dall’ufficio, ho provato a prendere la bicicletta e andare alla mia futura sede di via Crespi. Ho sbagliato strada, poi ho preso un senso unico rovescio (sul marciapiede, il che è significato dovere aspettare che passassero i pedoni) ma alla fine ce l’ho fatta. Tre chilometri e mezzo, quindici minuti: molto più vicino di quanto immaginassi, si vede che la geografia milanese mi è ancora ostica.
Diciamo che potrei arrivare a poco più di tre chilometri in dieci-undici minuti, il che significa in pratica che quando Anna non è a fare aule in giro io posso andare a pranzo a casa: ci metterò lo stesso tempo di adesso.
Non ci posso credere.

Sintassi, semantica, grammatica

Adesso non venite a lamentarvi che questa non è matematica, ma informatica. Lo so benissimo, anche se dal mio punto di vista le differenze sono relativamente minori (ho dato esami di informatica a matematica, e viceversa). Però sono notoriamente pigro, la parte principale di questo testo l’ho buttata giù al volo perché mi è stata chiesta, e non vedo perché non riciclarmela in altro modo… senza contare che può anche servire per chi non è interessato né alla matematica né all’informatica. E poi, se dobbiamo dirla tutta, sintassi e semantica si usano anche in logica matematica, quindi non è che io sia così fuori tema!
Si sente spesso parlare di sintassi, semantica e grammatica di un linguaggio di programmazione. Se uno si ricorda ancora cosa faceva a scuola, i nomi – almeno grammatica, su… – non sono nuovi; e in effetti il loro significato deriva più o meno direttamente proprio da quello che usano i linguisti. Vediamo qual è il loro significato, partendo proprio da quello che hanno nelle lingue reali.
Partiamo dalla semantica. In linguistica, la semantica è lo studio del significato delle parole e delle frasi in una lingua; detto in parole povere, “che cosa vuol dire quello che c’è scritto?” Nei linguaggi di programmazione, capita esattamente lo stesso: la semantica di un algoritmo è quello che l’algoritmo fa… ammesso naturalmente che non ci siano dei bachi. Similmente, nella logica matematica la semantica è l’interpretazione di una formula. Per fare un esempio, se scrivo ∀x (∃y: y=x+1) la sua semantica è “per tutti gli x possiamo trovare un y che vale x+1”. Se vogliamo rimanere più terra terra, se scrivo 2+2=4 la sua semantica è “due più due è uguale a 4”.
La sintassi indica come bisogna scrivere la frase perché sia corretta; ad esempio scrivere “qual’è” è sintatticamente scorretto, mentre “qual è” è corretto. In un linguaggio di programmazione come il perl, una regola sintattica è ad esempio che le variabili devono iniziare con $, gli array con @ e gli hash con %, o che una componente di un array è $a[x] mentre una di un hash è $a{x}. La parte più importante da tenere a mente è che la sintassi è una convenzione: non c’è nessuna ragione teorica perché gli elementi degli array stanno tra quadre e quelli di un hash tra graffe, esattamente come non c’è nessuna ragione teorica perché in italiano si accentino solo le parole tronche e non anche le sdrucciole come ad esempio in spagnolo. Notate che la sintassi è facilmente riconoscibile anche da uno stupido com’è un calcolatore: se uno scrive un programma, può capitargli che gli compaia il messaggio di errore “syntax error”, ma non certo “semantic error”! Anche nella logica matematica, le formule sintatticamente corrette sono quelle che hanno un senso, anche se magari non sono vere. Ad esempio, tra i numeri interi la formula ∀x∈N (∃y∈N: y=x/2), che dice “per ogni numero intero ce n’è un altro pari alla sua metà”, è sintatticamente corretta ma falsa, visto che ad esempio 1/2 non è un intero. La formula ∀=x/N (y∈N: y∃x∈2) non vuol dire nulla, e quindi non è sintatticamente corretta.
La grammatica, infine, è l’insieme delle regole per comporre le frasi (soggetto – verbo – complementi…) , a partire dalle varie parti che la compongono e che hanno dei ruoli diversi (verbo, nome, preposizione…). Nei linguaggi di programmazione il concetto di grammatica è molto più specializzato, perché esiste un insieme di regole formali che permettono di generare tutti i programmi sintatticamente corretti, applicando man mano delle trasformazioni. Anche nella logica matematica ci sono queste regole formali, però stranamente non viene dato loro un nome specifico, almeno per quanto ne so.
Ricapitolando, la semantica dà il significato, la sintassi il modo corretto di scrivere, e la grammatica dà le regole per scrivere correttamente. Vista così, la cosa non è nemmeno troppo complicata; ma basta relativamente poco e arriva uno come Gödel a mischiare le cose (perché il Numero di Gödel usato nel suo teorema di incompletezza non è poi altro che un modo di trovare una formula il cui signficato semantico riprende la formula stessa, invece che essere al di fuori del sistema). Ma credo di avervi già perso, stavolta…

De Mauro (il dizionario)

Alcuni anni fa comprai il dizionario De Mauro con allegato CD, perché non ho mai voglia di alzarmi a cercare una parola sul dizionario. A dire il vero non la cerco nemmeno sul CD, così lo usa Anna.
Una decina di giorni ma, mi fa “guarda che non funziona più il software”. Mi fa vedere che se seleziona “Analisi morfologica”, scrive una parola, e clicca su “analizza”, viene mangiata l’ultima lettera della parola: quindi ovviamente non trova nulla. Nella lista lemmi, invece, non ci sono problemi. Vabbè, dico io, intanto aggiungi una lettera a caso in fondo alla parola che così funziona: poi reinstallerò il programma.
Oggi mi sono ricordato della cosa: ho disinstallato e reinstallato il cd, ma il risultato continua ad essere identico. Qualcuno ha idea di cosa possa essere successo?

citazioni

Non me ne ero affatto accorto (io il sabato compro La Stampa perché c’è Tuttolibri), ma nella rubrica “Perché?” all’interno di Specchio (il magazine del giornale) veniva citata la mia definizione di “surfare” dal Gergo Telematico. Son soddisfazioni, neh?
(sì, dovrei portarlo avanti, ma mi conoscete… sono troppo pigro)

Un Istituto di Cultura italiana su Second Life

Leggo da Quintarelli che il Ministero per gli Affari Esteri (Minimo D’Alema, insomma) “ha aperto in via sperimentale un Istituto Italiano di Cultura all’interno di Second Life“.
È tutto vero, è scritto qui. Il ministero si rallegra per i vantaggi, legati a “spazi espositivi flessibili e a costi di allestimento estremamente contenuti”.
D’altra parte, se uno pensa al portale Italia.it, forse Minimo ha ragione.

trasloco 2

Il trasloco vero e proprio ci sarà solo il prossimo weekend, ma oggi abbiamo iniziato a spostarci nelle postazioni di emergenza (nel vero senso della parola: servono per il Disaster Recovering, che non ho mai capito cosa sia ma deve essere una Cosa Molto Brutta)
Come risultato ho dovuto iniziare a compattare tutta la rumenta che mi tenevo nel mio loculo, complice anche il fatto che la postazione vicina alla mia era libera. Ho buttato via pacchi di carta, compresi i vecchi numeri di Dev e Login dove non avevo scritto nulla, e ho nascosto nell’armadietto altra roba che poi metterò negli scatoloni. Sono molto felice di avere deciso di non cambiare pantaloni stamattina, posso lasciarvi immaginare la polvere che mi sono preso.
Certo che la posizione di adesso, dove vedo tutti, fa tanto callcenter :-(

Blocky – gioco online

Trovate Blocky su gameshot.org. Le regole del gioco sono molto semplici. C’è uno schema quadrato, con quadratini di colori diversi e con delle facce disegnate sopra. Trascinando il mouse, bisogna selezionare un rettangolo dove tutti gli angoli sono dello stesso colore: tutti i quadratini vengono allora sostituiti da altri (senza facce) e si guadagnano tanti più punti quanti più quadratini sono stati tolti. Il gioco è a tempo, e si passa al livello successivo quando tutte le facce sono state tolte.
Dico subito che non sono riuscito a superare lo schema coi quadratini di quattro colori: si vede che i miei neuroni hanno dei problemi. Aggiungo che ho già cancellato la finestra, per evitare di passarci la giornata: per uno come me, questo è il classico tipo di gioco che dà dipendenza!