Concetti Chiave
- La sintassi di C permette diverse modalità di scrittura, ma le convenzioni di stile migliorano la leggibilità e riducono i bug.
- Le coding conventions possono essere informali o formalizzate in linee guida, spesso adottate da gruppi di lavoro.
- Le convenzioni specifiche per Linux e GNU sono influenzate dal legame del C con Unix, con standard scritti da figure come Richard Stallman e Linus Torvalds.
- La formattazione del codice include la lunghezza delle righe, indentazione, uso delle parentesi, e commenti brevi e chiari.
- Le naming conventions richiedono nomi descrittivi per variabili e funzioni globali, mentre nomi brevi sono preferiti a livello locale.
Coding Conventions
La sintassi di C è ricca ed espressiva e nonostante ci siano poche parole chiave, un programma può essere quindi scritto in modi diversi. È possibile scrivere operazioni articolate in poche righe, ma il codice potrebbero risultare poco leggibile, la revisione potrebbe essere complessa e facilmente potrebbero esserci bug. Per questo si adottano convenzioni di stile: per rendere il codice più semplice.
Le convenzioni possono essere:
- Informali: il programmatore ha uno stile personalizzato di scrivere e revisionare il codice
- Formalizzate in linee guida: adottate generalmente da gruppi di lavoro
Le coding conventions sono linee guida da adottare quando si sviluppa un programma, non legate alla sintassi, adottate da gruppi di lavoro.
Le coding conventions seguenti (riguardanti identare codice, commentare codice e dichiarare nomi) sono legate a Linux, poichè il C è strettamente legato al sistema operativo Unix, Linux infatti e un sistema Unix-like.
GNU coding standards = scritte da Richard Stallman e volontari del progetto GNU (avviato nel 1983 per sviluppare un sistema operativo distribuito come software libero). Queste vengono usate molto nelle free software community.
Linux kernel coding style = scritte Linus Torvalds. (kernel = nucleo del sistema operativo è il software che garantisce ai processi un accesso sicuro all’hardware, la cui prima versione e stata sviluppata e rilasciata nel 1991. Il kernel è attualmente sviluppato da programmatori volontari e distribuito come software libero).
Precisazioni Linux, GNU e C:
- Linux e un sistema operativo GNU/Linux, una combinazione di software GNU e kernel Linux
- Il kernel Linux e scritto interamente in C (ISO C89)
- Il compilatore gcc (GNU Compiler Collection) è uno dei compilatori più usati per C
I principali aspetti legati alla formattazione sono:
- la lunghezza di una riga di codice: massimo 80 caratteri, altrimenti la riga viene spezzata in alcuni editor
- l’identazione: le righe dello stesso blocco devono avere lo stesso livello di indentazione.
- le parentesi
- commenti: devono esserci pochi commenti, poichè le istruzioni devono essere corte e semplici ma se necessario si possono usare brevi commenti. Se il codice è per il sistema GNU/Linux i commenti devono essere in inglese. Il codice del kernel Linux usa la sintassi ISO C89, quindi solo /* */.
- naming convention: i nomi di variabili, funzioni, macro devono spiegare il loro compito. I nomi globali devono essere descrittivi anche se lunghi, mentre i nomi locali devono essere brevi, poichè il loro scopo si comprende dalla funzione. Se il codice è per il sistema GNU/Linux i nomi devono essere in inglese.
Domande da interrogazione
- Qual è l'importanza delle convenzioni di stile nel linguaggio C?
- Quali sono le differenze tra convenzioni informali e formalizzate?
- Quali sono alcune delle principali convenzioni di formattazione per il codice C?
- Qual è il ruolo del compilatore gcc nel contesto del linguaggio C?
Le convenzioni di stile sono importanti per rendere il codice più leggibile e semplice da revisionare, riducendo la possibilità di bug.
Le convenzioni informali sono stili personalizzati del programmatore, mentre quelle formalizzate sono linee guida adottate da gruppi di lavoro.
Le principali convenzioni includono la lunghezza massima di una riga di 80 caratteri, l'indentazione uniforme, l'uso di parentesi e commenti brevi, e nomi di variabili descrittivi.
Il compilatore gcc è uno dei compilatori più usati per il linguaggio C, particolarmente nel contesto di sistemi GNU/Linux.