[Python] \b e \r in file di testo

enrico franchi enrico.franchi a gmail.com
Lun 29 Giu 2015 01:00:35 CEST


2015-06-28 15:22 GMT+01:00 Alessandro Re <ale a ale-re.net>:

> On Jun 26, 2015 9:30 AM, "enrico franchi" <enrico.franchi a gmail.com>
> wrote:
> > Grazie della fiducia, ma qui il disclaimer e' importante. Intanto la
> "teoria" di cui si parla e' roba che studiai davvero tipo 12 anni fa
> (quindi ci sono innumerevoli problemi di cache miss).
>
> Questo rende la cosa ancor più sorprendente :) la mia conoscenza dei
> linguaggi formali non è molto estesa (mi fermo a sapere cos'è il pumping
> lemma, per dire), ma la parte che ti invidio maggiormente è la capacità di
> collegarla all'effettiva implementazione e applicazione nei linguaggi di
> programmazione reali - che sostanzialmente non ho.
>
Questo e', in parte, un problema della didattica italiana. Generalmente
trovo che sia molto buona sugli aspetti teorici, ma poi non si procura
minimamente di collegare gli aspetti con qualcosa di vagamente pratico.
Credo che sia il solito complesso di inferiorita' degli informatici
(italiani specialmente) in confronto dei matematici, per cui cercano di
fare vedere che sono un po' matematici anche loro, tanta teoria, e la
pratica e' solo un dettaglio. Per dire, l'Ullman spesso tentava di
ricollegare la teoria alla pratica.

Come dicevo, poi e' complicato. Davvero la materia e' drammaticamente
astratta. Complessivamente ce ne sono intere parti che sono effettivamente
indistinguibili da altri soggetti di matematica discreta. Dopo di che
capita che una piccolissima parte sia applicata e che una parte
importantissima nella pratica (ma relativamente poco interessante nella
teoria astratta che si fa nel "primo corso") sia invece esposta in un corso
di compilatori. Per esempio, se si va a scrivere un parser per davvero,
sapere cosa vuole dire che una grammatica e' LL(k) o LR(k) cambia. E
tipicamente uno che fa compilatori sa cosa vuole dire e cosa cambia...
pero' ancora una volta, potrebbe non interessargli dimostrare che esiste un
parser LL(K) o meglio un LR (o LARL). Probabilmente gli interessa di piu'
scriverlo e che funzioni (ed effettivamente se hai un parser LARL che ti
parsa e me lo esibisci... beh, sei context free e tanti saluti[0]).

--
[0] al solito, sempre che la parte non context-free non sia finita nel
lexer.

Ma mentre la teoria si studia e, a seconda del cervello, la si ricorda o
> meno, la capacità di applicarla di solito è dovuta alla... Pratica! Quindi
> volevo chiederti, da dove deriva tutta questa conoscenza? Ti occupi di
> compilatori? Hai fatto un phd sul tema?
>
Allora... intanto non sono sicuro che sia "tutta questa conoscenza". Nel
senso che, davvero... se acchiappi una persona che di queste cose ne sa
davvero e' diverso. Parecchio diverso. Poi si, grosso modo questa roba la
masticavo, pero' ne ricordo veramente solo degli sprazzi. Grosso modo so
come funziona il pumping lemma, per intenderci, ma non e' che sono sicuro
che senza leggere te lo saprei scrivere corretto a memoria. Il che la dice
lunga su quanto poco ormai sappia della teoria. Pero' diciamo che ho
imparato un po' ad applicare quello che ricordo.

E no, non mi occupo di compilatori; per un po' ho fatto parecchia analisi
statica (ma li la parte di parser e combriccola serve, ma e' il meno
interessante di tutto il bailamme: puoi tranquillamente sputare syntax
error e tanti saluti: a nessuno salta in testa di ficcare un programma
sintatticamente non valido in un coso che cerca di dimostrare che il tuo
programma non contiene certi errori semantici). Incidentalmente siamo in
media piu' forti sulla parte di "ottimizzazione" perche' quello che fai in
analisi statica e' relativamente piu' vicino all'ottimizzatore di un
computer. Un analizzatore statico cerca di dimostrare che il tuo programma
ha certe caratteristiche che implicano che una certa categoria di bug e'
assente, un ottimizzatore cerca di dimostrare che il tuo programma ha certe
proprieta' tali per cui puo' essere riscritto in un modo piu' efficiente.
Ci sono anche casi veramente vicini.

Ma e' comunque roba di 8 anni fa, direi. Credo che sotto sotto mi sia stata
martellata in testa stile training di Karate Kid quando studiavo. Certo, mi
e' stata tenuta rinfrescata per alcuni anni. Altra roba e' invecchiata
molto peggio nella mia testa.

-- 
.
..: -enrico-
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150629/a8fa5433/attachment.html>


Maggiori informazioni sulla lista Python