Cosa è il C?
Il C è un linguaggio di programmazione! Il linguaggio di programmazione C è stato sviluppato nel 1972 da Dennis Ritchie (di cui vedete una diapositiva in alto) alla AT&T Bell Labs. E' stato chiamato linguaggio C semplicemente perché il linguaggio di programmazione B già esisteva.
Il linguaggio C è fondamentale se si vuole diventare Programmatori. Infatti è l'anello di congiunzione tra linguaggi ad alto livello (Java-PHP-VB-etc.) e linguaggi a basso livello (Assembler - linguaggio macchina).
Questo manuale (o guida) sul C è il primo passo per chi vuole imparare a conoscere questo linguaggio.
I linguaggi ad alto-livello sono quelli più vicini al linguaggio umano, mentre i linguaggi di programmazione a basso livello sono quelli piu vicini alla macchina.
Il C è l'unico esempio di linguaggio (riuscito) che pur essendo gestiro ad alto livello, viene interpretato e compilato correttamente (ed efficaciemente) nei sistemi embedded (generalmente gestiti a basso livello).
Mi spiego meglio: un programma scritto in linguaggio C è valido sia per i computer (massima espressione di potenza hardware) che per i sistemi embedded, dagli 8bit ai 32bit. Esistono anche compilatori Basic o Java per i sistemi embedded, ma nessuno è efficace e funzionale come il linguaggio C (e relativi compilatori).
Quindi, se vuoi essere un Programmatore, DEVI sapere come funziona il linguaggio C.
Linguaggio di programmazione C: vantaggi
- Leggibilità
I programmi scritti in C sono facili da leggere, pensando all'assembler, una riga di codice C equivale spesso a decine di righe assembler
- Mantenibilità
Manutenere un programma in C è semplice, data la leggibilità e la struttura ad oggetti/librerie
- Portabilità
I programmi in c sono facilmente portabili in tutte le piattaforme hardware. L'affidabilità e l'efficenza dipende dalla qualità del compilatore c.
La scrittura di programmi C è resa intuitiva dalla similitudine delle istruzioni con la lingua inglese, le più famose sono if-then (se avviene un certo evento, fai questa cosa) oppure la funzione print stampa.
Ogni linguaggio di programmazione necessita quindi di un compilatore in grado di tradurre le istruzioni in linguaggio macchina. Si, perche sia i computer che i sistemi embedded possono comprendere solo il linguaggio macchina, quindi il codice binario.
Tutto il programma DEVE quindi essere tradotto in numeri binari. Una sequenza di 1 e di 0 , solo quelli capisce il microprocessore.
Perchè? Semplicemente perchè a differenza dell'uomo (ehm... di alcuni) riesce a "vedere" solo bianco o nero, aperto o chiuso, acceso o spento, on o off, vero o falso, UNO o ZERO.
Proprio uno e zero sono facilmente rappresentati a livello hardware da transistors.
Infatti un transistor aperto pone in uscita 1 (condizione vera) mentre un transistor chiuso rappresenta lo zero (condizione falsa). Trasportando tutto nell'ambito delle alimentazioni del microprocessore (alimentato ad esempio a 5V), 1 significa 5V e zero significa GND (massa).
Se mettiamo un ingresso del microprocessore a massa, il programma leggerà l'ingresso=0 se invece da programma poniamo un uscita=1 e a questa uscita è collegato un led, il led si accenderà (uscita=5V).
Insomma, una spiegazione un pò semplicistica, ma rende l'idea di quello che avviene "dietro" al programma che noi vediamo.
Del manuale sulla programmazione con il linguaggio C è possibile fare anche il download in PDF tramite l'iconcina rossa PDF.
L'autore è disponibile a rispondere alle vostre domande nei commenti


































... il pdf
Scusa la tremenda ignoranza, ma l'icona pdf mi restituisce l'articolo in pdf e l'icona rossa che era in testa, una volta registrato è sparita ...
Mi associo!
Mi associo!
Ragazzi, guardate bene! Una
Ragazzi, guardate bene! Una volta registrati appariranno 3 piccole icone (sotto l'immagine di Dennis Ritchie in basso a destra):
- versione stampabile
- invia ad un amico
- download pdf
------
Ionela
L'Elettronica Open Source
Programmatori in 48 ore? balle!
In 48 ore puoi leggerti un manuale ed imparare a fare "hello word". PEr divenrtare programmatori VERI servono almeno 48 mesi, lavorandoci 4-5 ore al giorno per 5 giorni alla settimana, altro che balle!
hello word
Se conosci l'elettronica e la programmazione, a fare "hello word" ci metti 10 minuti. Per diventare programmatori c VERI, come dici tu, ci vogliono anni.
Ma dipende sempre cosa si vuole fare, ad esempio se devi scrivere un programma in linguaggio c, mediamente semplice per microcontrollore, a livello professionistico ovviamente, e non hai mai usato il c, questo corso ti aiuta... in 48h
Se devi programmare un sistema operativo o un videogame 3D, se devi spingerti in funzioni complesse (ricorsione etc.) allora stiamo parlando di un altro livello che affronteremo in un altro corso.
Quoto
Nel pdf c'è l'articolo non il manuale, (Del manuale sulla programmazione con il linguaggio C è possibile fare anche il download in PDF tramite l'iconcina rossa PDF) come mi aspettavo.
Ciao
Orestolo
Quoto
Idem, si scarica solo l'articoletto introduttivo ma il manuale dov'è ?!?
Mi associo 2!
Mi associo 2
quoto
confermo solo l'articolo
Rispondo a tutti: il pdf è
Rispondo a tutti:
il pdf è dell'articolo della puntata giornaliera del corso sul linguaggio c. Quindi se vi interessa, seguite il blog, oppure abbonatevi al feed rss.
P.S. a che vi serve il corso completo sul C tutto in una volta, mica dovete studiare il C in 48h tutte di fila
Superficialità docet
Davvero superficiale come descrizione.
Va bene che il linguaggio C è forse il linguaggio di programmazione più utilizzato (in qualsiasi ambito), ma esistono sistemi embedded programmati in ADA, Fortran, Java, C++, Forth, ...
Una volta che un programma è compilato il microprocessore non ne sa nulla di qual'era il linguaggio utilizzato
Poi mi spieghi perchè un sistema embedded non è un computer?
"Il linguaggio C è fondamentale se si vuole diventare Programmatori", ma quando mai?
Se uno sa programmare in Cobol o in Pascal non è un programmatore?
Si passa dai compilatori ai livelli logici in 4 righe... sarebbe opportuno evitare di creare confusioni del genere ed essere più chiari su quello di cui si sta parlando.
Quoto chi in precedenza ha detto che servono 48 mesi per diventare programmatori (in C o in altri linguaggi) e forse sono anche pochi.
Ehi, è solo la prima
Ehi, è solo la prima parte... (di 48!!!)
Comunque, questo corso sul linguaggio C è rivolto sia ai professionisti che agli hobbisti di buona volontà. Quindi ho cercato di non essere troppo "pesante" inizialmente.
Certo che un sistema embedded è anche un computer, ma in genere il C per sistemi embedded è riferito ai microcontrollori.
Le differenze non sono sostanziali, ma ci sono.
I problemi che incontrano tutti i programmatori ad alto livello (abituati a lavorare su pc) sono in genere negli i/o, quindi non comprendere fino in fondo l'hardware, quindi il micro sul quale lavorano, quando programmano in c embedded (oops).
Per chi invece è abituato a lavorare in assembler (quindi viene dal basso livello) di questi problemi non ne ha (magari altri :)
>"Il linguaggio C è fondamentale se si vuole diventare Programmatori", ma quando mai?
>Se uno sa programmare in Cobol o in Pascal non è un programmatore?
Certo che è un programmatore, ma, parere personale , un Programmatore, con la P maiuscola, DEVE conoscere il C.... anche in 48h......
Concludo invitandoti a postare chiarimenti sulle tue ultime affermazioni, se vuoi puoi sempre dire la tua, basta commentare e spiegare i compilatori ed i livelli logici in + di 4 righe.... io mica mi faccio di cognome Kernighan,
sto solo scrivendo un corso sul C per aiutare, chi vuole, ad impararlo, in base alla mia esperienza ed a documenti vari che conservo e che mi hanno aiutato nei miei progetti sviluppati in.... linguaggio c embedded (per microcontrollori)
Se anche tu vuoi partecipare, sei il benvenuto, i commenti sono sempre aperti :)
Speriamo che la seconda vada meglio ;)
> Comunque, questo corso sul linguaggio C è rivolto sia ai professionisti che agli hobbisti di buona volontà.
> Quindi ho cercato di non essere troppo "pesante" inizialmente.
Pesante non lo sei stato, ma fuorviante abbastanza soprattutto per i neofiti.
Mi metto nei panni dell'hobbista che legge la tua introduzione e che si trova in mezzo discorsi sulla logica binaria e sui livelli di segnale a 0-5V... , cosa ci stanno a fare questi discorsi su di un corso in C?
Va bene una infarinatura su come funziona un sistema, ma mi è sembrata abbastanza caotica.
L'idea alla base di qualsiasi linguaggio di programmazione (assembler escluso) è di astrarre la macchina su cui si sta lavorando, per cui se poi uso dei transistor, dei flip-flop, dei relè o degli ingranaggi poco mi deve interessare.
Consiglio da amico, cerca di rimanere nei binari mantenendo un filo della discussione molto lineare, altrimenti rischi di generare troppa confusione nel lettore.
Comunque seguirò con attenzione le puntate successive.
In bocca al lupo ;)
PS: Conosco ed uso quotidianamente il C da più di 20 anni ma non mi reputo uno con la P maiuscola solo per il fatto di conoscere questo linguaggio.
Linguaggio C in 48h - Lo standard ANSI/C
Leggete la seconda parte del Linguaggio C in 48h - Lo standard ANSI/C
Grazie,
------
Ionela
L'Elettronica Open Source