Convenzione di denominazione

Una convenzione di denominazione nella programmazione del computer è un insieme di regole di codifica per la scelta degli identificatori del software (nomi degli elementi del programma) nel codice sorgente e nella documentazione.

I principi

I motivi per utilizzare una convenzione di denominazione (invece di consentire ai programmatori di scegliere qualsiasi sequenza di caratteri) sono i seguenti:

La scelta delle convenzioni di denominazione può essere controversa, con i sostenitori di ciascuna convenzione che considerano la loro la migliore.

Tali convenzioni sono spesso imposte sulla scala di un progetto o di un'organizzazione, in particolare nell'ambito dello sviluppo di un software di dimensioni conseguenti. Possono coprire un campo più ampio e riguardare ad esempio documentazione, commenti, caratteristiche linguistiche che possono essere imposte o vietate (questo può essere il caso dell'istruzione goto ), ecc. Parliamo allora piuttosto di convenzione, o standard, di codifica . Ad esempio, l'industria utilizza lo standard MISRA C , che è anche integrato negli analizzatori di codice e in alcuni compilatori . Su una scala ancora più ampia, gli accordi possono abbracciare l' intero ciclo di vita del software .

Benefici

L'uso di una convenzione di denominazione può fornire una sicurezza molto maggiore nell'uso dei programmi per computer , poiché il codice sorgente deve seguire regole precise. Ciò renderà più facile raggiungere livelli EAL più elevati, ad esempio nel software , quando si tratta di verificare il codice sorgente .

I vantaggi dettagliati possono essere così suddivisi:

Le difficoltà

La scelta delle convenzioni di denominazione (e la loro portata) è spesso oggetto di dibattito. Inoltre, anche con convenzioni note e ben definite in atto, potrebbero esserci momenti in cui le organizzazioni non riescono a implementarle in modo coerente, il che può causare confusione.

Queste sfide possono essere esacerbate se le regole interne della convenzione di denominazione sono incoerenti, arbitrarie, difficili da ricordare o, al contrario, più noiose che utili.

Elementi di una convenzione di denominazione

Lunghezza identificatore

Caso di lettere e numeri

Identificatori di parole multiple

Metadati e convenzioni ibride

notazione ungherese

notazione posizionale

Schema di parole composite (OF Language)

Uno dei sistemi di convenzione pubblicati più lunghi è stato "OF Language" di IBM , documentato negli anni '80 nel manuale del sistema di gestione delle informazioni (IMS) . Descriveva in dettaglio lo schema di parole PRIME-MODIFIER-CLASS che consisteva in nomi come "CUST-ACT-NO" per indicare "numero di conto cliente".

In pratica, le parole CLASS disponibili formavano un elenco di meno di due dozzine di termini. Le parole CLASS, posizionate a destra (suffisso), avevano praticamente lo stesso scopo dei prefissi della notazione ungherese .

Lo scopo delle parole CLASS, oltre alla consistenza, era quello di specificare al programmatore il tipo di dati di un particolare campo. Prima di accettare campi booleani (solo due valori), FL (flag) indicava un campo con solo due valori possibili.

Esempi

Standard di registro dei metadati ISO / IEC 11179

lo standard ISO/IEC 11179-5 sui registri di metadati contiene convenzioni di denominazione per concetti di elementi ( nomi di elementi ), domini concettuali e domini di valore.

Questo standard riguarda tutti i linguaggi di markup ( HTML , XML , ...), ma anche, attraverso elementi di metadati , dati che possono essere utilizzati da altri tipi di linguaggi.

linguaggio Java

In Java, fin dall'inizio della creazione di questo linguaggio, le convenzioni hanno stabilito requisiti rigorosi su classi e variabili da capitalizzare in modo diverso. Pertanto, per un programmatore Java, widget.expand() e Widget.expand() implicano comportamenti significativamente differenti, anche senza una conoscenza preventiva della classe Widget e nonostante il compilatore non imponga alcuna regola.

Infatti, per convenzione, widget è considerato una variabile . L'uso comune suggerisce che widget sia un'istanza della classe Widget. Con contro, Widget.expand() viene interpretato dal programmatore Java come "il metodo expand static() della classe Widget".

linguaggio C

Gli identificatori che rappresentano le macro in C e C++ sono, per convenzione, scritti utilizzando solo lettere maiuscole.

Note e riferimenti

  1. Un esempio: i processi utilizzati da NOAA , la sezione Documenti di formazione fornisce anche convenzioni di codifica per i linguaggi Fortran e C

Vedi anche