linux user group brescia

immagine del castello

Archivio della mailing list

Trattamento testo

Giuseppe Corbelli cowo a lugbs.linux.it
Sab 12 Lug 2003 13:20:11 UTC
On Sat, Jul 12, 2003 at 11:24:44AM +0200, Vernia Damiano wrote:
> > ??? Cosa vuoi dire ???
> 
> 	Esempio:
> 
> p net 21 26 19 5 8
> n 32 1600
> a 1 2 100 10
> d   19    4   48
> 
> 	Questo e' il file piu' piccolo che devo analizzare. Sono 740 byte, 
> che corrispondono ad un'istanza di problema di 56-57 kbyte (occhio al k).
Pochi tipi. Se la complessita' e' su questi livelli potresti evitare le
regex e analizzare direttamente le stringhe.
 
> > di solito si vuole fare il contrario: trasformare files binari in 
> > testo (formattato) per poterlo meglio processare...
> > usare files binari e' una brutta cosa(tm)
> 
> 	Ti credo, ora occhio a questo caso: il file sopra corrisponde alla 
> descrizione di una rete di telecomunicazioni. Io devo trovare dei percorsi 
> all'interno di questa rete. Questi percorsi vengono memorizzati come un 
> vettore lungo quanto il numero di nodi (numero che puo' raggiungere al 
> massimo 65000, quindi 2 byte) quindi un percorso (comunque lungo) occupa 
> in memoria 2 * Nnodi byte. Devo tenere in memoria 2 percorsi per ogni 
> relazione di traffico, senza contare tutte le altre diverse correlazioni 
> con dati che non sto a citare, tra cui esistono numerosi bitmap.
> 	Gia' il programma e' complesso di suo, se poi mi studio anche un 
> formato testuale per salvare e ricaricare i dati buonanotte.
Mi viene un'idea un po' idiota. Si potrebbe usare un pianificatore con un
dominio ad hoc?

> > > 	Se non ricordo male awk e' un linguaggio interpretato (tanto per
> > > questa fase non ho assolutamente bisogno di velocita') pensato apposta per
> > > questo lavoro. Mi sbaglio?
> > 
> > Senti... il discorso velocita' di esecuzione ha poco senso quando si parla
> > di selezione del linguaggio per lo sviluppo di software.
> 
> 	Sinceramente non credero' mai che un linguaggio interpretato sia 
> piu' veloce (o simile) a uno compilato. Sono un fan dei linguaggi 
> interpretati piu' che dei compilati, ma se mi metto a scrivere 
> l'ottimizzatore in python (tanto di cappello, lo voglio imparare), sempre 
> ammesso che il relatore non mi squarti, penso che ci metterebbe 
> decisamente di piu' ad ottenere lo stesso risultato ottenibile con lo 
> stesso algoritmo implementato in C (che a sua volta da risultati peggiori 
> dell'ASM, es. sui DSP anche 8-9 volte...).
...
Puo' darsi. Ma garantisco che la cosa dipende in primis dalla qualita'
dell'implementazione. Esempio:
mi dicono di usare un programma in C che da una rete completamente connessa
in modo bidirezionale trancia un certo numero di links controllando con
Dijkstra che tutto sia raggiungibile. Per un problema con 90 nodi e 40% di
links da tranciare ci mette piu' di 1/2 ora su un athlon 2000.
Non ho messo le mani nel programma e non so come funziona ma mi pare troppo.
Scrivo 100 righe di Python che fanno la stessa cosa, giusto con qualche
opzione in piu' che mi serve, e per lo stesso problema ci mette ~1 minuto.
E non ho dei poteri magici, ne' sono il dio del python.
Se conti che questa roba doveva generare 90000 problemi vedi quanto ho
risparmiato...
 
> > Personalmente suggerirei il perl se devi fare anche dell'i/o binario, ma
> > ripeto e ribadisco che non penso sia una buona idea.
> 
> 	Perl lo sento nominare tantissimo, non ne conosco nulla, ma penso 
> che a questo punto dovro' impararne un pochino...
Per trattare testo e' fantastico, ha moduli per il porco e tutto, ha una
sintassi flessibilissima. Per lavorare su OOP e grossi progetti la vedo
male.
 
-- 
        Giuseppe "Cowo" Corbelli ~\/~ My software: http://cowo.yoda2000.net
          -<! windoze: no need of an hammer to crash it! !>-



Maggiori informazioni sulla lista Lug