Home
Accesso / Registrazione
 di 

Linguaggio C in 48h - Introduzione alla programmazione in C

Linguaggio C - Inventore

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

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di buoncri

... 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 ...

ritratto di gf

Mi associo!

Mi associo!

ritratto di Ionela

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

ritratto di Anonimo

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!

ritratto di Emanuele

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.

ritratto di orestolo

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

ritratto di marcobev

Quoto

Idem, si scarica solo l'articoletto introduttivo ma il manuale dov'è ?!?

ritratto di markuz05

Mi associo 2!

Mi associo 2

ritratto di giovannif

quoto

confermo solo l'articolo

ritratto di Emanuele

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 Laughing

ritratto di MagicMan

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.

ritratto di Emanuele

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 :)

ritratto di MagicMan

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.

ritratto di Ionela

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

ritratto di lucaciatti

pdf

Scusatemi sono nuovo nel sito non riesco a trovare il manuale pdf qualcuno sa spiegarmi il perche?

ritratto di maxstella17

bello

ciao

ritratto di maxstella17

dov'è il pdf ?

non lo vedo

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 6 utenti e 81 visitatori collegati.

Ultimi Commenti