Concetti Chiave
- La sintassi del C è versatile, permettendo diversi stili di scrittura, ma potrebbe compromettere la leggibilità e aumentare il rischio di bug.
- Le convenzioni di coding possono essere informali, basate su stili personali, o formalizzate in linee guida condivise da gruppi di lavoro.
- Le coding conventions legate a Linux riguardano pratiche come indentazione e commenti, essenziali per mantenere un codice chiaro e manutenibile.
- Le GNU coding standards e il Linux kernel coding style sono esempi di linee guida sviluppate per favorire la coerenza nel codice C utilizzato in ambienti Unix-like.
- La formattazione del codice include regole sulla lunghezza delle righe e convenzioni di naming, che devono essere chiare e descrittive sia per variabili che per funzioni.
Sintassi e leggibilità del codice
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.
Coding conventions e Linux
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
Formattazione e convenzioni di naming
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 nella scrittura del codice in C?
- Quali sono le principali convenzioni di coding associate a Linux?
- Quali sono i requisiti di formattazione per il codice in C?
- Come devono essere nominati variabili e funzioni nel codice C?
Le convenzioni di stile sono fondamentali per migliorare la leggibilità del codice, facilitare la revisione e ridurre il rischio di bug, poiché un codice scritto in modo chiaro è più semplice da comprendere e mantenere.
Le principali convenzioni di coding associate a Linux includono gli standard di codifica GNU, scritti da Richard Stallman, e lo stile di codifica del kernel Linux, sviluppato da Linus Torvalds, che si concentrano su aspetti come l'identazione e la commentazione del codice.
I requisiti di formattazione includono una lunghezza massima di 80 caratteri per riga, un'adeguata indentazione, l'uso corretto delle parentesi e commenti brevi e chiari, preferibilmente in inglese se il codice è destinato a GNU/Linux.
Le variabili e le funzioni devono avere nomi descrittivi che riflettano il loro scopo; i nomi globali possono essere più lunghi e dettagliati, mentre i nomi locali dovrebbero essere brevi, poiché il loro significato è chiaro nel contesto della funzione.