Question 11.34

Sono esterefatto che lo Standard ANSI lasci cosi` tanti punti indefiniti. Non e' il compito fondamentale dello Standard di standardizzare queste cose?


E` sempre stata una caratteristica del C che certi costrutti si comportavano in qualsivoglia modo un particolare compilatore o una particolare macchina scegliesse di implementarli. Questa deliberata imprecisione spesso permette ai compilatori di generare codice piu` efficente per i case comuni, senza dovere caricare tutti i programmi con codice extra per assicurare comportamento ben-definito di casi pensati essere meno ragionevoli. Dunque, lo Standard sta semplicemente codificando la pratica esistente.

Uno standard di un linguaggio di programmazione puo` essere pensato come un trattato tra l'utente del linguaggio e l'implementatore del compilatore. Parti del trattato consistono delle caratteristiche che l'implementatore del compilatore concorda di fornire, e che l'utente puo` assumere che saranno disponibili. Altre parti, comunque, consistono di regole che l'utente concorda di seguire e che l'implementatore puo` assumere saranno seguite. Nella misura in cui entrambi le parti si attengono alle loro garanzie, i programmi hanno una buona probabilita` di funzionare correttamente. Se uno o l'altro delle parti rinnega uno dei suoi impegni, niente e` garantito funzionare.

Vedere anche domanda 11.35.

Riferimenti: Rationale Sez. 1.1


Leggere di seguito: prev prossima su cima


Questa pagina e` di Steve Summit // Copyright 1995 // mail feedback