Newsgroup: it.comp.lang.c
Titolo: A CHE COSA SERVE IL C ??

Mi spiego meglio
sono uno studente di ing. informatica ed automatica
mi sto preparando per fondamenti di informatica II°, sto studiando il C
e mi chiedo
In quali applicazioni e implementazioni posso usare il C; solo dal punto
di vista educativo? e nel mondo professionale? è propedeutico a cosa?
Mi mancano un pò di finalità pratiche; oltre agli esercizi cosa si può
fare?
ciao a tutti
--
Posted from 
mta03-acc.tin.it
 [212.216.176.34]
via Mailgate.ORG Server - 
http://www.mailgate.org

...


fare?
Bhe', chiedersi che cosa puo' fare il C e' quasi equivalente a chiedere
che cosa possono fare i computer.
Tanto per essere concreti: in C sono stati scritti e continuano ad essere
scritti i sistemi operativi (tranne qualche pezzetto in assembly)
e le utility di sistema.
Spesso in C vengono realizzati compilatori per altri linguaggi
(agli albori del C++ vi era un C-front che traduceva il C++ in C,
 anche il Java puo' essere "tradotto" in C e compilato nativamente).
Spesso un compilatore C e' l'unico strumento di sviluppo fornito con
microcontrollori: da un sorgente C si ottienete l'eseguibile con il
quale "bruciare" una xxROM.
In C/C++ vengono scritti (molti dei moderni) videogiochi ed (molti dei)
programmi di produttivita' individuale (eccepisce eSuite, in Java).
Per i programmi scientifici Fortran e C hanno permesso di scrivere quasi
tutto quello che c'e' in giro.
I grandi database, spesso basati su mainframe utilizzano ancora oggi
COBOL e linguaggi "particolari", come RPG e SQL.
[Mi perdonino gli esperti degli argomenti poco sopra citati per la
pressapochezza usata, ma ho ritenuto di semplificare l'esposizione].
Sulla validita' del C come linguaggio didattico, prova a rileggere
alcuni articoli di Alex MArtelli in it.comp.lang.c++, in cui
motiva la sua classifica di "facilita'" dei linguaggi in base a
caratteristiche
come la gestione dei tipi ed i modelli di programmazione che un linguaggio
offre.
Il C e' un linguaggio che definirei pratico, non pone troppe domande
e lascia fare al programmatore quasi tutto quello che vuole. E' il migliore
linguaggio per "attaccarsi" al sistema operativo e sfruttarlo.
Il paradigma procedurale che offre e' molto semplice ed immediato,
consentendo di tradurre mentalmente il programma in assembly.
Infondo, secondo me, le cose piu' difficili del C sono state i puntatori e
le strutture dati allocate dinamicamente.
Il linguaggio C, per la debolezza del paradigma di programmazione che offre,
secondo me, non e' propedeutico a nulla.
Spiego meglio, dal punto di vista della sintassi puo' essere propedeutico
al C++, o (piu' lontanamente) a Java, mentre come modello di programmazione
puo' essere propedeutico al piu' al Pascal vecchia maniera (inteso come
stereotipo-prototipo dei linguaggi solo procedurali).
Nel mondo professionale il C ha potenzialmente tutti gli sbocchi,
dato che ogni aspetto della programmazione ha una libreria C
(fornita dal sistema operativo o da terze parti) consente di portare
a termine il proprio compito. La stessa cosa non e' vera per altri linguaggi
(leggi VB) che in certi casi devono mimare il C per svolgere compiti appena
diversi dall'ordinario.
Non appena si richieda al proprio linguaggio di sviluppo la capacita' di
supportare ed aiutare nella progettazione, ecco che il C appare carente,
e ci si rivolge allora a linguaggi che supportino "gli oggetti".

fare?


 fare?
Direi che il C è uno dei linguaggi più potenti e versatili e viene
utilizzato dalla scrittura di sistemi operativi, al controllo di
dispositivi, alla grafica, al gestionale, insomma per tutto.
EMG

sistemi operativi al mondo (non perň i piů diffusi); puoi realizzare un
...per la cronaca...anche Windows 95, 98 e NT sono scritti in C...
praticamente qualsiasi s.o. e' scritto principalmente in C...
Ciao!

fare?
Dato che il tono delle risposte è su questo tipo:
"Tieni sempre una copia del Kernighan - Ritchie "Il linguaggio C" sul
comodino. La copia sia possibilmente in inglese, da sostituire appena
possibile con la versione scritta direttamente in C (attualmente in
lavorazione)."
"Avevo problemi di calvizie precoce. Mi sentivo a disagio con gli altri. Poi
ho provato con il C e adesso ho una folta chioma."
"Quando fai l'amore con qualcuno non dire "si, dai, di più, si, dai, di
più", ma prova
con "++dai" o con "dai += ancora": sono più veloci rispetto al precedente.
Nota: "++dai" e non "dai++" che fornisce lo stesso valore di "dai"; dovresti
accedere nuovamente a "dai" per leggere il valore incrementato: magari utile
per intere notti di fuoco."
Scherzi a parte, la potenza del C è:
- nell'efficienza dei programmi realizzati a parità di algoritmo.
- nei limiti, praticamente inesistenti, che pone al programmatore.
- nel software già elaborato con questo linguaggio.
Non dimenticare che, comunque, il software è caratterizzato per la maggior
parte dell'algoritmo che risolve il problema: l'implementazione attraverso
un linguaggio piuttosto che un altro è un problema che passa in secondo
piano.
Ciao.
Che il C sia con te.
--
Francesco Trotta
http://space.tin.it/computer/ftrotta
Elimina "x_" dal mio indirizzo per mandarmi
un messaggio direttamente

 piano.
Sono quasi perfettamente d'accordo tranne per il fatto che alcune cose
in alcuni linguaggi non si possono proprio fare indipendentemente
dall'algoritmo (prova a visualizzare un AVI con il COBOL...) e quindi
c'č comunque bisogno, in questi casi, almeno di affiancarli ad un
linguaggio potente come il C.
EMG

linguaggio potente come il C.
E` normale e sensato farlo, non e` indispensabile; sia Burroughs
sia altri produttori hanno venduto in passato sistemi in cui anche
il sistema operativo era in Cobol (che parlava direttamente con
il microcodice dell'hardware, tipicamente progettato apposta per
questi scopi).
In generale, il C standard dispone di una serie di costrutti che
permettono di compiere (in modo, ovviamente, del tutto
dipendente dalla macchina) molte delle tipiche operazioni di
sistema operativo (trasformare un numero in indirizzo, ad es,
tramite un cast), ma NON tutte (lanciare e gestire interrupt,
ad es., non e` fra quelle previste).  Per scrivere un SO o sue
componenti occorre dunque che il linguaggio standard sia
arricchito di alcune componenti non-standard (normalmente
scritte in assembler).  Questo si applica a qualsiasi altro
linguaggio di alto livello, sara` questione di aver bisogno, che
so, di 40 primitive in linguaggio macchina invece di 30, nulla
di clamoroso.
Per questo tipo di lavori il C e` probabilmente piu` produttivo
di altri linguaggi, e sicuramente e` oggi dominante dal punto
di vista pratico, ma da qui, a sostenere che e` indispensabile,
ne corre (si facevano computer, e in particolare computer con
buone parti di sistemi operativi in linguaggi ad alto livello, anche
prima che il C fosse inventato).
Alex

 Auguri (cosa fai, lo visualizzi come caratteri ASCII?-).
Hai ragione, non si può. Come non detto. Non ci avevo riflettuto
abbastanza.
EMG