Ancora su ‘The C Programming Language First Edition’

n1Ancora qualcosa su K&R di cui ho raccontato qui.
Apro il libro PDF a p.13 (del PDF, è la 5 del libro) e trovo che posso ripetere un esercizio di tanti anni fa:

The only way to learn a new programming language is by writing programs in it. The first program to write is the same for all languages:

    Print the words
        hello, world

This is the basic hurdle; to leap over it you have to be able to create the program text somewhere, compile it successfully, load it, run it, and find out where your output went. With these mechanical details mastered, everything else is comparatively easy.

In C, the program to print “hello, world” is

    main()
        {
            printf("heIlo, world\n");
        }

Just how to run this program depends on the system you are using. As a specific example, on the UNIX operating system you must create the source program in a file whose name ends in “.c“, such as hello.c, then compile it with the command

    cc hello.c

If you haven’t botched anything, such as omitting a character or misspelling something, the compilation will proceed silently, and make an executable file called a.out. Running that by the command

    a.out

will produce

    hello, world

as its output. On other systems, the rules will be different; check with local expert.

Adesso siccome che Linux è l’evoluzione di UNIX (allora si scriveva così; poi a dirla tutta io ero su PR1ME) quasi quasi…

k0

Sì, proprio come mi aspettavo; manca l’include.

Ma il compilatore è smart e comprensivo, avvisa e supplisce.

Intanto provvedo, vediamo…

k1

OK 😀
A dire il vero manca ancora una cosa: main() è una funzione come tutte le altre, anche se ha il privilegio di –dai mica devo dirvelo, mica siamo più a fine anni ’70! 🙄
In ogni caso è un warning, ritorna giusto

k2

Pensa te! Più o meno come quando l’amico C. (non so se posso citarlo per esteso, anche perché lui sarebbe googlabile e sembrerebbe che voglia vantarmi) mi diceva dell’Odissea letta in versione originale; anche lì l’edizione originale è finita chissà dove, anzi se qualcuno sa qualcosa… Ma vale per tutti, anche –per dirne una– per The Hitchhiker’s Guide to the Galaxy.

Il PDF rivela altre sorprese (per me, sto andando sul perso): il possessore del libro dimostra di essere sorpreso dalle stesse cose che sorpresero me, per quel che ricordo ma fu davvero uno shock.

Una cosa che forse i giovani (cioè tutti quelli più giovani di me) non sanno è che ci sono state parecchie modifiche. Apriamo il PDF a p.31 (p.23 del libro) e vediamo:

k3

visto? e se interpreto bene il possessore del libro ha annotato la nuova sintassi 😀
La Second Edition di 10 anni dopo riporta la dichiarazione attuale; a p.26 una nota ricorda la variazione intercorsa:

A note of history: The biggest change between ANSI C and earlier versions is how functions are declared and defined.

Ricordo perfettamente (quasi) 😀

OK, ricordi personali, non interessano a nessuno lo so 😀

Ma prima di chiudere ancora una cosa: ho cercato per il manuale del C del Pr1me; c’è qui: C User’s Guide Release T1.0-21.0 (1988), ma solo la scheda.
Un sito ricchissimo, dell’Università di Stoccarda ha, per Pr1me solo cose vecchie, classiche.
Forse devo cercare ancora 😉
:mrgreen:

Posta un commento o usa questo indirizzo per il trackback.

Lascia un commento

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.