Curiosità linguaggio macchina

di il
3 risposte

Curiosità linguaggio macchina

Allora, sono nuovo del forum. Mi sono iscritto sperando di trovare una risposta alla mia domanda che faccio ad ogni informatico ma nessuno mi sa rispondere. Ho 17 anni, studio programmazione a scuola, ma ciò che mi sono sempre chiesto è: Come ha fatto l'uomo a comunicare per la prima volta con il computer? Cioè mi spiego meglio.. So che inizialmente veniva usato il linguaggio macchina in bit (codice binario) ed ogni sequenza di bit era un'istruzione. Mano mano che i problemi era sempre più complessi si è voluti passare ad un linguaggio che semplificasse le cose: L'assembly. Bene, ora mi chiedo: Come abbiamo fatto a dire al pc che l'istruzione 0011 deve essere usata quando scrivo LOAD? Cioè il linguaggio macchina non lo abbiamo creato noi, sono sequenze di bit, che provengono dalla CPU, ma l'assembly lo abbiamo creato noi ed insegnato noi al pc. Come? Il pc è un "essere" stupido, come abbiamo fatto a fargli capire che 0011 è uguale a dire LOAD?
Spero di essere stato chiaro, attendo risposte! Grazie in anticipo!

3 Risposte

  • Re: Curiosità linguaggio macchina

    La risposta potrebbe essere davvero lunga, ma potresti iniziare a studiare Informatica Teorica ed in particolare la Macchina di Turing. Questa teorizzazione logica e matematica nasce prima dei computer per come li conosciamo, curiosamente, nella storia del computer, prima è stata data una solida definizione teorica e solo successivamente, con Von Neumann, si è passati ad una realizzazione concreta. Capire come funziona una Macchina di Turing o più semplicemente un Automa a Stati Finiti dovrebbe, almeno in parte, rispondere alla tua domanda.


    Tanto per capire, ma a quanti informatici hai fatto questa domanda? Se nessuno ti ha mai dato una risposta spero siano stati pochi, altrimenti siamo messi male.


    Inviato dal mio iPad utilizzando Tapatalk
  • Re: Curiosità linguaggio macchina

    I primi programmi erano delle schede perforate utilizzate per far funzionare i telai per la realizzazione dei tessuti, pensa un po' te!




    Ti devi leggere quache bel libro di storia dell'informatica (su amazon ne trovi diversi, uno qualunque va bene).

    Sei mooooolto giovane Quando ho iniziato io a programmare, qualche annetto fa , i programmi li scrivevo in bit!, proprio 0011, con dei piccoli interruttori ed una serie di led rossi con cui controllare quello che inserivo nella memoria del computer, ed una serie di tastini per fare l'enter, avanti di un passo, indietro di un passo, cancella, esegui!

    Poi, qualcuno si e' scocciato di inserire i singoli bit ed ha scritto un programmino che permetteva di scrivere un programma in esadecimale e lo convertiva in bit. Qualcosa del genere l'ho scritta anch'io

    Successivamente qualcun altro si e' scocciato di scrivere i programmini in esadecimale ed ha scritto un programmino per convertire i programmi scritti in assembler (LOAD, ...) in bit!

    Poi si sono pure scocciati di scrivere LOAD e programmare in assembler, e si sono inventati i linguaggi di programmazione

    I primi linguaggi storicamente piu' famosi sono COBOL, Fortran, ALGOL, ed un linguaggio di programmazione per l'Intelligenza Artificiale usato ancora oggi: il LISP.

    Il caro e vecchio LISP, LISt Processing, affettuosamente detto (in italiano) Lista Infinita di Stupide Parentesi

    Ed un linguaggio allucinante l'APL

    Siamo meta' anni '50, primi anni '60

    http://it.wikipedia.org/wiki/Elenco_cronologico_dei_linguaggi_di_programmazione

    E poi venne la luce ...

    Tra cui von Newmann, l'inventore del computer come lo conosciamo oggi, l'antenato Bill e il pronipote Zuckenberg ... (dai cartoni animati Gli Antenati e I Pronipoti di Hanna e Barbera)


    http://it.wikipedia.org/wiki/Architettura_di_von_Neumann

    E se ti dai da fare, potresti essere il prossimo inventore della super killer application ..


    Per quanto riguarda la Macchina di Turing: questo e' un modello matematico di computer, usato in Computer Science, estremamente semplice, ma si e' dimostrato essere equivalente a qualunque computer antico e moderno, per quanto potente.


    Quindi, riassumendo, ci si e' arrivati per passi: l'architettura moderna, basata su CPU, memoria, set di istruzioni e programma, e' un concetto degli anni '40.
    Il computer continua, ancora oggi, a ragionare in BIT, ma un po' alla volta, sono stati creati dei programmi per convertire un modo di programmare piu' semplice, in bit!
    E questo e' stato fatto da persone (mostruosamente in gamba, per di piu')!
  • Re: Curiosità linguaggio macchina

    Michael97 ha scritto:


    Il pc è un "essere" stupido, come abbiamo fatto a fargli capire che 0011 è uguale a dire LOAD?
    Il pc sa che 0011 corrisponde a un caricamento in memoria perché la cpu al suo interno contiene la famosa unità di controllo, che riceve in ingresso l'opcode (0011) ed emette una serie di segnali, che possono essere diretti o alle altre parti della cpu oppure a dispositivi esterni (ram, interrupt controller, dma controller ecc.). Questa unità di controllo può consistere o in una logica combinatoria o in una ROM, in cui ogni cella contiene i segnali relativi a un opcode (l'opcode è l'indirizzo di quella cella); poi ci possono essere soluzioni più sofisticate per ridurre il parallelismo della rom, ma questa è un'altra storia.

    Quindi in pratica quando la cpu preleva l'istruzione LOAD dalla memoria e la memorizza dell'instruction register, ne preleva l'opcode e lo manda all'unità di controllo, che a sua volta emetterà una serie di segnali, tra cui ad esempio il READ/WRITE della ram, i vari segnali per bloccare tutte le linee di scrittura sul data bus eccetto quella della ram e così via.
Devi accedere o registrarti per scrivere nel forum
3 risposte