Newsgroup: it.comp.programmare
Titolo: transizione

Salve a tutti... sono un giovane sbarbato (nel senso che non sono nè uno
studente di informatica nè tantomeno un professionista) che ha intrapreso
l'arduo (per me) tentativo di passare alla programmazione per Linux (e
quindi in C++) dal vecchio e fido Turbo Pascal imparato a scuola.
Il problema è che il vecchio TP mi aveva abituato alle sue belle librerie
integrate, giurassiche quanto volete, ma semplici da usare e ben
documentate, e a suo tempo ben studiate (Ctrl+F1 su una parola ogni tre e si
impara in fretta...). Con Freepascal, poi, volendo si possono aggiungere
finezze quali i socket, il multithreading, supporti OpenGL e quanto d'altro,
ma sempre con pacchetti abbastanza standard.
Passare da un sistema del genere all'anarchia del C++ è traumatico... anche
perchè di manuali che inseganano le più nascoste budella del LINGUAGGIO C++
se ne trovano a centinaia, ma a quanto pare nessuno ha pensato di scrivere
un compendio di librerie C di medio livello coi relativi manuali.
La domanda è quindi: che cosa mi consigliereste per fare un passaggio il più
possibile indolore dalla sicurezza scolastica del TP al C++? Qualcuno ha in
mente un piccolo set di librerie adatte per un uso hobbystico di medio
livello, MOLTO ben documentate e facilmente reperibili? L'unica veramente
necessaria, poi, è una libreria grafica, visto che per schede sonore, porte
seriali etc. etc. l'hardware abstraction layer di LINUX è veramente
eccezionale (uno dei motivi per cui mi sobbarco questa sgobbata).
Mi piacerebbe anche vedere una bella libreria che faccia aritmetica di
grandi interi: il 'progetto' che al momento vorrei terminare per primo è un
cifratore RSA, e anche se sono fermamente deciso a scrivermi da solo le
funzioni matematiche a 1024 bit (è lì il divertimento...), nel probabile
caso di uno stallo vedere il lavoro di un professionista potrebbe essermi
utile.
Grazie a tutti da ora.

 utile.
Direi che per dare un occhio a come sono fatte delle librerie
crittografiche con i controcaxxi guardati OpenSSL e OpenSSH. Sono
OpenSource... puoi studiarti i sorgenti a piacere.
Ovviamente non ti aspettare di arrivarci in fondo dopo un paio di mesi
di programmazione C o C++
-- 
(setq RiK0 "Enrico Franchi")
(setq url "
www.anubics.org
")
(setq quote "Se mi prendo sul serio, 
 c'e' da mettersi a ridere." )

 io)
Già venduto, è veramente ottimo! :)
Ciao
--
Noixe

 utile.
Beh, non e` chiarissimo se l'architettura delle GMP sara` compatibile con
quello che scrivi tu (immagino di no, perche` non si basano su interi a
numero FISSO di bit, bensi` a lunghezza variabile secondo le esigenze).
E onestamente per imparare gli algoritmi giusti (moltiplicazione di interi
lunghi secondo Karatsuba) non credo che studiare codice scritto con il
SOLO parametro dell'ottimizzazione assoluta delle prestazioni sia il modo
piu` facile (puoi trovare codice MOLTO piu` didattico e quindi facile da
seguire).  Comunque, le GMP ti serviranno comunque per indicare magari
quanto ti costa in termini di prestazioni volere reinventare la ruota a
scopo didattico invece di usare Michelin o Bridgestone direttamente;-).
Alex

 scopo didattico invece di usare Michelin o Bridgestone direttamente;-).
Troppa grazia... all'inizio del messaggio mi ero definito come sbarbato
proprio per evitare che le mie necessità sembrassero maggiori di quello che
sono. Il mio obiettivo è semplicemente quello di scrivere un programma che
effettui correttamente i calcoli dell'RSA, non un applicativo completo e
"vendibile". Tanto per intendersi, se anche ci impiegasse 2 secondi a
cifrarmi una lettera su un Pentium IV mi riterrei del tutto soddisfatto!
Riflettendoci, in effetti, tutto il codice che si troverà in giro in materia
deve essere scritto per matematici e simili, e quindi ben più ottimizzato e
complesso di quanto possa servirmi (e di quanto possa capire, soprattutto).
In fin dei conti i calcoli necessari per cifrare con RSA si possono
ricondurre a poco più delle quattro operazioni; però, dato che bisogna
comunque usare dei numeri più lunghi di un longint perchè la cosa abbia un
minimo di senso, tanto vale farli di una dimensione seria [ossia degli
"unsigned long long long long long long int".... :)] Sulla moltiplicazione
(non fatta in quel modo, intendo) non dovrei avere problemi, più che altro
la cosa noiosa è la divisione. Riscrivere da capo PGP non è nè sarà mai nei
miei programmi.
E comunque, di questi tempi le Bridgestone è meglio non usarle :)
Muchas gracias