Newsgroup: it.comp.lang.c
Titolo: meglio l'assembler o il c?

Ciao, mi sto avvicinando alla programmazione, e devo scegliere
da quale linguaggio partire. La mia scelta ora e' tra C e assembler.
Ho sentito che il C e' molto usato e flessibile, ma che se uno
impara l'assembler per bene poi sa come funziona un computer
alla perfezione, oltre ad avere a disposizione il linguaggio che puo'
fare piu' cose in assoluto. Cosa mi consigliate?
frankino

[...] Cosa mi consigliate?
Nessuno dei due mi sembra il più adatto per iniziare. Meglio Python
(
www.python.it
 e 
www.python.org
) o Pascal.
-- 
Marco Barisione (ICQ 84277092)

 (
www.python.it
 e 
www.python.org
) o Pascal.
ma i primissimi programmatori con cosa hanno iniziato?
io non riesco a capire come mai sia sbagliato partire da un di questi due
linguaggi.
potresti spiegarmi il motivo
ps:
ankio sono agli inizi!


 da quale linguaggio partire. La mia scelta ora e' tra C e assembler.
Secondo me non ci salti fuori se cominci dall'assembler...
Per cominciare è molto meglio il pascal, xò si riesce a partire anche col 
C, anche se è un pochino più complesso..
Cmq. tra C o Assembler, per iniziare, parti dal C.
Bye.
katte.

 potresti spiegarmi il motivo
è chiaro che i primissimi programmatori cominciavano con l'assembler
(cavoli, avevano solo quello!!), ma oggi, che sono nati tantissimi nuovi
linguaggi, è possibile cominciare da qualcosa di più semplice, più
"distante" dalla macchina (come può essere per esempio il Visual Basic), per
poi, col tempo, avvicinarcisi sempre di più.
Comunque l'assembler non è certamente la scelta giusta, perlomeno se si
vuole programmare in un ambiente grafico. l'assembler è ideale se si
vogliono creare delle semplici routine magari da dover eseguire migliaia di
volte (è il linguaggio più veloce in assoluto, colloquia direttamente con la
macchina), ma già creare una finestra diventa un'impresa titanica (non sto
scherzando!).
ciao, assa.

frankino <xxx@xxx.x> wrote in message
a%Fu8.40807$m41.1...@twister2.libero.it...

Sono due linguaggi difficili ma credo tra i migliori e tra i più utilizzati.
Di solito si dice di iniziare con un linguaggio facile per poi imparare uno
più complicato.
Io per esempio ho iniziato con il Basic e poi:
I "scolastici" Pascal e Cobol: discreto il primo, burocratico il secondo.
Clipper
C
Assembler
Le differenze tra questi linguaggi è che il C è un linguaggio di medio
livello e l'Assembler un linguaggio a basso livello, cioè è più vicino al
linguaggio macchina (quindi hai maggiore controllo, velocità ed efficienza a
scapito della semplicità).
Prova ad imparare entrambi, poi se non riesci a combinare niente di buono
prova con qualcosa di più facile.

potresti spiegarmi il motivo
Perche' il Pascal (il Python non lo conosco, quindi non ne parlo) e'
un linguaggio didattico che non ti permette "sporcature", ma ti
obbliga a usare la programmazione strutturata: e' nato apposta e con
questo solo scopo.
Il C e' nato per scrivere Unix (e in generale per sostituire
l'assembly per 99% dei casi): e' potente, flessibile e NON didattico.
L'Assembly lo puoi anche imparare, ma di certo non ci programmi grossi
applicativi, perche' il tempo necessario sarebbe troppo elevato. In
Assembly ci si fanno le ottimizzazioni qualora necessario.
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."

 Mox
ciao e grazie

magari!
si chiamerebbe C e non ASM
--
Lawrence Oluyede
rhy...@myself.com

 ciao e grazie
Ciao, e scusate se mi sono intromesso nella discussione, ma e' un argomento 
a me caro
-- 
{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}
SunGray aka Gabriele Lana
contact me @ sungray@tiscalinet
See you space cowboy ...

convinto di star facendo qualcosa, mentre invece ne sta facendo un'altra.
mmm questo è un problema del programmatore e non del
linguaggio....ad ogni modo non sono daccordo con
te...spiegati meglio
--
Lawrence Oluyede
rhy...@myself.com

 
rhy...@myself.com

 a me caro
grazie a te!

 te...spiegati meglio
Non sei d'accordo con il fatto che un linguaggio multiparadigma possa non 
essere adatto ad una persona che vuole apprendere la programmazione? Se e' 
questo, per come sono portato a vederla io, penso che molta liberta' di 
movimento non faccia troppo bene dal punto di vista didattico, sono 
un'estimatore di python e lo trovo notevolmente pulito e coerente dal punto 
di vista sintattico/semantico, ma non lo utilizzerei per insegnare a 
programmare a qualcuno, sopratutto se non e' debitamente guidato da una 
persona che sa cosa fare (e' meglio imparare ad andare in bicicletta con un 
paio di rotelline in piu', che spaccarsi la faccia e magari rinunciare 
prima di aver imparato).
Quando hai un problema, e il linguaggio che stai utilizzando non solo ti 
mette a disposizione piu' di un metodo sintattico per risolverlo, ma ti da 
la possibilita' di descrivere la stessa soluzione attraverso costrutti 
sintattico/semantici di notevole differenza, come fare a capire qual'e' il 
metodo migliore?
Per saperlo valutare, devi conoscere la logica sulla quale si basa il 
metodo da te scelto, e riconoscere i costrutti sintattici del linguaggio 
che ti permettono di metterlo in pratica, in piu' devi avere esperienza di 
progettazione, di architetture software, ecc... per stabilire quale 
soluzione "potrebbe" essere la migliore (nota il "potrebbe" in quanto 
generalmente non si hanno a disposizione metodi analitici per valutarlo, ma 
e' nella maggior parte dei casi l'esperienza, il talento e l'intuito che te 
lo dicono).
Quindi all'inizio e' meglio apprendere bene la teoria dei vari paradigmi, 
fare esperienza utilizzandoli singolarmente, capirne pregi e difetti. Poi 
se vuoi, quando sai cosa fare, e' inutile integrare piu' di un linguaggio 
monoparadigmantico (che brutta parola :-() quando hai a disposizione un 
linguaggio che supporta piu' paradigmi in maniera pulita e coerente.
Ripeto questa e' la mia opinione, non vorrei scatenare flame, al massimo 
una pacifica, sana e utile discussione :-)
Ciao


essere adatto ad una persona che vuole apprendere la programmazione?
il fatto è che come dici tu Python è semplice e pulito e
nessuno ti obbliga ad utilizzare o a perderti nella
programmazione OO se non devi o non vuoi
--
Lawrence Oluyede
rhy...@myself.com

e il C č distante da ciň?
semplicemente il C non č pulito :)
--
Lawrence Oluyede
rhy...@myself.com

> python -> C++ (occhio che sto parlando di anni di lavoro)
Un lungo giro :)
Vedere il Java prima del C++ pero' e' molto didattico: ti insegna
quanto sia bello avere un linguaggio multiparadigma :)


 
rhy...@myself.com

 Mox
txs mox!!!

 il C non è pulito in quanto è di difficile comprensione?
No, il C e' stato progettato con lo scopo di ottenere un linguaggio 
sufficientemente ad alto livello che avesse la minima distanza possibile 
fra le sue istruzioni e le relative traduzioni in assembly. Il pascal e' 
stato costruito come linguaggio dimostrativo della programmazione 
procedurale. Il primo segue una finalita' pratica, il secondo segue una 
finalita' didattica, per questo viene chiamato "linguaggio didattico". La 
"pulizia" sta nell'aderenza ad una determinata filosofia. "Filosofia" 
legato ad un linguaggio di programmazione, lo puoi sentire legato a molti 
aspetti, uno di questi e' il come (in generale) un linguaggio di 
programmazione ti permette di descrivere il problema da affrontare e la sua 
soluzione.
Ex. il C (tanto per restare un po' IT), ti porta ad isolare le 
funzionalita' del software che devi sviluppare, ti porta ad individuare 
delle sottofunzionalita' comuni a queste funzionalita', le quali verranno 
riutilizzate in tutto il codice, e cosi via. Poi ti porta ad isolare la 
struttura delle entita' del tuo problema, che andrai a descrivere con 
opportune strutture dati che, nella maggior parte dei casi, sono scelte ad 
hoc, non tanto per il loro potere descrittivo, quanto per favorire gli 
algoritmi che andranno a manipolarle. I suddetti algoritmi saranno 
scelti/scritti in maniera adeguata alle funzionalita' individuate.
Ora, quello sopra e' solo un esmpio, in realta' il C e' un linguaggio a 
basso livello e quindi di ampio respiro, ovvero e' possibile simulare con 
delle strategie opportune, altre filosofie non direttamente supportate. 
Basti pensare all'esempio famoso delle GTK+, la cui struttura di base, 
fornisce gli strumenti per una incompleta, ma efficace programmazione ad 
oggetti.


"SunGray" scrisse

grazie di quore ragazzi!
se solo avessimo voi a scuola...!
eheh!
pensateci!

strutturata, logica, OO) ?
Mmm non esattamente....il Java ti forza a programmare ad
oggetti anche se puoi programmare in modo strutturato. Il
linguaggio più multiparadigma che conosco (si inserisce bene
nel concetto di programmazione strutturata, in quello ad
oggetti e anche funzionale) è il Python
--
Lawrence Oluyede
rhy...@myself.com

 sono cosě legate IA e programmazione ad oggetti?
[cut]
penso che mox intendesse soltanto dire che nemmeno coloro che cominciavano a
dare forma all'intelligenza artificiale (quindi le menti piů geniali)
avevano ancora immaginato la programmazione ad oggetti e che quindi, in quel
periodo, quel tipo di programmazione non era concepibile da nessuno.
spero di aver interpretato nel modo giusto :)
ciao, assa.

la programmazione...tantomeno quella ad oggetti....
Era una lezione di storia la mia :)
Il concetto di Programmazione a oggetti nasce in ambito di IA con il
nome di Frame, con lo scopo di rappresentare la conoscenza prototipale
(stiamo parlando degli albori, quando non si usavano reti Bayesiane
basete sulle probabilita'). Sono uno strumento particolarmente adatto
per classificare degli oggetti nella giusta classe (i termini non sono
messi a caso).
Il frame non e' ne piu' ne meno che una variabile strutturata, sui
frame vi possono essere agganciati delle procedure (quelle che in OOP
si chiamano metodi) e possono avere slot particolari chiamati trigger
(che servono per determinare se un frame puo' essere attivato o no nel
caso specifico).
Solo successivamente si e' visto che questo concetto andava molto bene
anche per i linguaggi di programmazione.
Questa e' una spiegazione molto sommaria sui frame ovviamente, ma
visto che siamo OT direi che e' piu' che sufficiente :)


Era una lezione di storia la mia :)
ah ecco :)
--
Lawrence Oluyede
rhy...@myself.com

anche col C, anche se è un pochino più complesso..
io non vedo questa differenza di complessità tra c e pascal. un
semplice programma c non vedo che differenze abbia rispetto a un
semplice programma pascal, di quelli che si fanno all'inizio per
imparare a programmare.
resto invece favorevolissimo a insegnare per prima la programmazione
strutturata, quindi pascal (purtroppo) o c mentre da ormai due anni in
università qui a Milano il corso di programmazione (dove arriva
parecchia gente che sa a malapena cos'è un pc) è in java. secondo me
parlare di classi, ereditarietà ecc. sarebbe da fare più avanti...

parlare di classi, ereditarietà ecc. sarebbe da fare più avanti...
IMHO potresti anche iniziare subito da un linguaggio orientato agli
oggetti, ma non da una cosa come il Java.


oggetti, ma non da una cosa come il Java.
ROTFL "una cosa come il Java" :)
si chiamano linguaggi di programmazione e non cose :)
--
Lawrence Oluyede
rhy...@myself.com

si chiamano linguaggi di programmazione e non cose :)
<JOKE>
    Ci sono cose e linguaggi di programmazione :)
</JOKE>


Ci sono cose e linguaggi di programmazione :)
come mai consideri il Java un linguaggio di bassa lega?
--
Lawrence Oluyede
rhy...@myself.com

 come mai consideri il Java un linguaggio di bassa lega?
Saremmo OT.
Ad ogni modo, IMHO, il Java va' benissimo per insegnare il paradigma
dell'OOP (meglio che partire con il C++, per uno che non ne sa nulla
di programmazione, figurarsi di OOP).
Per programmi reali (che siano performanti) Java, IMHO, non ha molto
da offrire.
E` un po' la situazione Pascal/C: il primo e` ottimo per insegnare e
il secondo e` ottimo per sporcarsi le mani. :-)
Bye,
 Emmanuele.
-- 
Emmanuele Bassi (Zefram)           [ 
http://www.radiance.d2g.com/~zefram
 ]
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4

il secondo e` ottimo per sporcarsi le mani. :-)
vedi sopra :) anche se il Pascal (nella sua forma più
conosciuta ed estesa, l'Object Pascal) ha trovato parecchio
spazio
--
Lawrence Oluyede
rhy...@myself.com