Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [OT] L'assembler

    Ciao a tutti,

    volevo il vostro parere sull'uso dell'Assembly sui Personal Computer.

    Mi spiego meglio:
    per motivi di lavoro uso l'Assembly sui microcontrollori, mi trovo a doverlo usare per massimizzare al meglio le risorse molto molto limitate di questi dispositivi (l'ultimo con cui ho avuto a che fare ha un clock di 500 kHz e RAM pari a 512 kByte).

    Dato che, al contrario, gli odierni Personal Computer possiedono risorse incredibili (dual core, clock di 3 Ghz, Gbyte di RAM e via dicendo) mi chiedevo se l'uso dell Assembly su queste macchine possa servire solo a scopo didattico o se invece possa in qualche modo ad elevare le già eccellenti prestazioni di cui sono dotati i PC.

    Aspetto i vostri pareri.

    Saluti e buon pomeriggio,
    Il Beg

  2. #2
    Mah, da quanto ne so i compilatori attuali sono abbastanza evoluti da generare spesso codice più efficiente di quello scritto in assembly da programmatori non espertissimi. Credo che tuttavia in alcuni casi, se usato da gente esperta, sia insostituibile per la sua efficienza (leggevo recentemente che la maggior parte del codice delle routine GDI di Windows è scritto direttamente in assembly).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    volevo il vostro parere sull'uso dell'Assembly sui Personal Computer.
    Sui personal? A parte il cracking e il reversing in genere non ci sono altri motivi che personalmente mi spingerebbero a investire tempo sopra ASM.
    Dipende dalle tue esigenze. Quali sono?
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  4. #4
    Originariamente inviato da billiejoex
    Sui personal? A parte il cracking e il reversing in genere non ci sono altri motivi che personalmente mi spingerebbero a investire tempo sopra ASM.
    Dipende dalle tue esigenze. Quali sono?
    ah no no billie nessuna esigenza volevo solo sapere il vostro parere in merito a questa questione in quanto ogni tanto vedo dei post sull'assembly e mi chiedevo appunto cosa si potesse fare oggi con questo linguaggio su macchine cosi potenti quali sono i PC.

    Ci tengo a dire inoltre che trovo le vostre osservazioni molto interessanti!

    Saluti!


  5. #5
    Data la grande evoluzione tecnologica che ha investito l'home computing , le aree per sviluppare codice assembly si sono notevolmente ridotte . Tuttavia per particolari applicazioni in cui la velocità di esecuzione è un fattore cruciale , e mi riferisco al fast rendering usato nei videogame che fanno un intenso uso di grafica d'effetto , l'assembly continua a dire la sua . Un'altra possibile area di applicazione è quella dei compilatori , i quali utilizzano un assembler nella fase di back-end , ossia nella fase di traslazione da codice intermedio a codice macchina . Sempre che non si voglia saltare questa fase e ottenere un compilatore che "interpreta" il byte code intermedio .
    A parte queste due aree , i vari tool e linguaggi di sviluppo mi sembrano più che sufficienti per produrre applicazioni di qualsivoglia complessità . Saluti

  6. #6
    Secondo me chi programma dovrebbe seriamente cominciare a pensare al proprio fegato.
    L'abuso di linguaggi di medio-basso livello (ASM, C, C++, ...) e la ricerca di "performance a tutti i costi sempre e cmq" produce codice molto spesso buggato, ottenuto con la frustrazione di dover programmare con pochi strumenti del codice che poi risulterà essere estremamente lungo, complesso e poco manutenibile (da cui i problemi di fegato, appunto). Un software non deve essere il più veloce possibile ma sufficientemente veloce.
    Se ASM o chi per esso ti serve davvero per esigenze di performace lo utilizzerai solamente in quelle parti critiche che effettivamente necessitano di essere ottimizzate al massimo. Tutto il resto lo scriverai con linguaggi di più alto livello coi quali il tuo fegato riprenderà un po' di respiro.
    Lo stesso discorso si può tranquillamente fare per una buonissima parte delle applicazioni scritte in C e C++, imho, applicazioni dove tali linguaggi sono totalmente sprecati e abusati, ma questa è un'altra storia (OT).
    La premature optimization è una pratica inutile, dannosa, troppo spesso applicata e in molti casi addirittura incoraggiata.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  7. #7
    decisamente scrivere dei programmi piccoli e veloci è obsoleto portateci al museo
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    444
    Originariamente inviato da billiejoex
    Secondo me chi programma dovrebbe seriamente cominciare a pensare al proprio fegato.
    L'abuso di linguaggi di medio-basso livello (ASM, C, C++, ...) e la ricerca di "performance a tutti i costi sempre e cmq" produce codice molto spesso buggato, ottenuto con la frustrazione di dover programmare con pochi strumenti del codice che poi risulterà essere estremamente lungo, complesso e poco manutenibile (da cui i problemi di fegato, appunto). Un software non deve essere il più veloce possibile ma sufficientemente veloce.
    Se ASM o chi per esso ti serve davvero per esigenze di performace lo utilizzerai solamente in quelle parti critiche che effettivamente necessitano di essere ottimizzate al massimo. Tutto il resto lo scriverai con linguaggi di più alto livello coi quali il tuo fegato riprenderà un po' di respiro.
    Lo stesso discorso si può tranquillamente fare per una buonissima parte delle applicazioni scritte in C e C++, imho, applicazioni dove tali linguaggi sono totalmente sprecati e abusati, ma questa è un'altra storia (OT).
    La premature optimization è una pratica inutile, dannosa, troppo spesso applicata e in molti casi addirittura incoraggiata.
    Pardon la mia ignoranza, ma se anche C e C++ sono obsoleti e di medio-basso livello, con cosa programmi tu? Aggiungo che non è nè una critica nè niente di provocatorio, è solo perché io non conosco moltissimi linguaggi e sono interessato a sapere se esistono linguaggi ancora più di alto livello.
    *********************************
    Andrea
    *********************************

  9. #9
    Originariamente inviato da Squall1988
    Pardon la mia ignoranza, ma se anche C e C++ sono obsoleti e di medio-basso livello, con cosa programmi tu? Aggiungo che non è nè una critica nè niente di provocatorio, è solo perché io non conosco moltissimi linguaggi e sono interessato a sapere se esistono linguaggi ancora più di alto livello.
    no no attenzione billie non ha detto che il C e il C++ sono obsoleti!!
    Credo intendesse dire che per certe applicazioni siano sufficienti linguaggi di alto livello come il Python o Java tutto qui

    Personalmente ho trovato molto costruttive tutte le spiegazioni scritte fin ora


  10. #10
    Pardon la mia ignoranza, ma se anche C e C++ sono obsoleti e di medio-basso livello. Con cosa programmi tu?
    Ben lungi dall'essere obsoleti, non ho detto quello.
    Ho semplicemente detto che una pratica molto comune è quella di utilizzare C / C++ a priori per il solo fatto che sono dei linguaggi tipicamente molto performanti e questo, imho, è una pessima abitudine dato che si tiene conto di quello e quello soltanto, senza domandarsi se tale parametro è effettivamente determinate per l'applicazione con cui si è alle prese.
    La mia percezione è che il 'programmatore medio' (ma non solo, ne vedo anche di ben skillati che adottano il medesimo approccio) non si ponga neanche domande in merito, orientandosi verso determinati linguaggi a prescindere, vuoi per questioni storiche (C, C++) o semplicemente commerciali (PHP, Java).
    Lo stesso non tiene minimamente conto che la stessa applicazione scritta con linguaggi più appropriati sarebbe pronta in un quinto del tempo, sarebbe lunga un quinto, sarebbe meglio manutenibile e conterrebbe un numero minore di bachi, senza contare i costi più contenuti che costerebbe un tale programmatore ad una eventuale azienda (le ore si pagano).
    I due linguaggi per eccellenza che incontrano queste caratteristiche sono essenzialmente due: Ruby e Python (io utilizzo quest'ultimo). Recentemente ha fatto capolino 'D', connubio tra performance e produttività, ma purtroppo al momento non ha avuto quasi praticamente seguito (la "major" manca e l'utenza non pensa con la propria testa).
    Con questo non voglio dire che i due sopra citati siano 'i migliori a priori', ma che in un buon 80% dei casi rappresenterebbero se non la scelta migliore in assoluto, quanto meno migliore rispetto a C o C++, semplicemente perchè scrivere determinate applicazioni coi suddetti è come darsi una martellata sui cocomeri, nè più nè meno. Sono semplicemente abusati, ecco tutto.

    Aggiungo che non è nè una critica nè niente di provocatorio, è solo perché io non conosco moltissimi linguaggi e sono interessato a sapere se esistono linguaggi ancora più di alto livello.
    Ci mancherebbe. E' solo che manca la buona informazione, secondo me.
    Quando uno sviluppatore cerca "le performance a tutti i costi" anche quando è alle prese con un client di messaggistica, imho, dovrebbe seriamente investigare su quale sia il vero motivo per cui sta utilizzando "x" anzichè "y". La scelta dell'utenza è quasi sempre determinata dalle spinte delle 'major' o dai "sentito dire" e non da una reale analisi del prodotto in base alle proprie esigenze. In base a questo si vede uno strapotere a testa bassa e pugno chiuso di Java in ambiti lavorativi e scolastici e una grande massa di programmatori mediocri che, armati di cannone (C/C++), cercano di uccidere un topolino (Instant Messanger), appunto.

    Credo intendesse dire che per certe applicazioni siano sufficienti linguaggi di alto livello come il Python o Java tutto qui
    Direi più "per la maggior parte delle applicazioni". E non che "siano sufficienti" quanto "abbia più senso utilizzarli". Se tieni conto delle comodità messe a disposizione da Ruby / Python direi che siano C / C++ a risultare 'meno sufficienti'. Questione di prospettive.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.