Asterischi in commenti multilinea

4

Usando Visual Studio 2012 con C #, quando scrivo commenti su più righe, VS inizia automaticamente ogni riga con un asterisco, in questo modo:

/*
 *
 *
 */

Ero curioso di sapere se questo fosse il caso in linguaggi di programmazione diversi da C #, o se c'era un motivo specifico per questo modello.

    
posta person27 14.03.2014 - 03:36
fonte

2 risposte

10

Alcune delle prime sintassi dei commenti introdotte nella programmazione in cui i commenti delle dichiarazioni. Questo tipo di commenti richiedeva la propria riga.

Ad esempio in base

REM This is a comment.

Questo ha creato un codice sorgente più lungo e ha utilizzato una parola chiave. Più o meno nello stesso periodo sono arrivati i commenti di fine riga che richiedono un solo carattere per iniziare il commento.

Come Fortran o Assemblea

MOV C,1 ; This is a comment

Per le lingue con grammatica semplice questo andava bene, ma con lo sviluppo di una grammatica più avanzata sono stati usati due caratteri per iniziare un commento.

Come in C ++

int c = 1; // This is a comment

O come SQL

SELECT * FROM x -- This is a comment

Molte lingue supportano commenti del blocco oltre ai commenti di fine riga . Queste lingue spesso supportavano l'uso degli operatori matematici *+/ per scrivere espressioni.

Un commento di blocco non può utilizzare la stessa sintassi di grammatica utilizzata per i blocchi di codice. Ad esempio, se { } viene utilizzato per bloccare il codice, non può essere riutilizzato per i commenti. Lo stesso vale per le parentesi () poiché vengono utilizzate per ordinare espressioni matematiche. Così spesso sono stati usati due caratteri per aprire / chiudere il commento del blocco.

Diamo per scontato l'evidenziazione della sintassi degli IDE odierni. Quando sono stati introdotti commenti di blocco alla programmazione, non è stata evidenziata la sintassi. Qualcuno potrebbe facilmente introdurre un bug se i commenti del blocco fossero troppo vicini alle espressioni matematiche.

Ad esempio; Se hai usato (- this is a comment -) per contrassegnare i blocchi, potresti facilmente scrivere un'espressione matematica come;

int x = 1+(-10);
int y = 2+(z-);

Quanto sopra verrebbe effettivamente compilato a int x = 1+;

Questi tipi di problemi esistono effettivamente in alcune lingue più vecchie. Di conseguenza l'uso di /* this is a comment */ per i commenti su più righe è diventato molto popolare. Il motivo è che visivamente /* non è un'operazione matematica valida.

Ad esempio;

int x = 1 /* 8;
int y = 3 */;

Per un lettore umano non c'è errore. Non è una matematica valida. Puoi ancora leggere il commento all'interno dell'espressione. StackExchange sta aggiungendo l'evidenziazione della sintassi (lol) ma l'immagine è senza e colori.

Questo è diventato un blocco di commenti standard perché ha risolto molti problemi grammaticali nell'analisi del linguaggio rimanendo facilmente identificabile come commento.

Quando VS aggiunge un extra% di* a ciascuna linea. È per garantire la leggibilità del commento quando non è presente l'evidenziazione della sintassi. Se apri il codice sorgente in un normale editor di testo, quelle righe sono chiaramente indicate come un commento.

Se l'inizio di un commento /* scorre sopra lo schermo. Non c'è modo di sapere se quello che stai leggendo è un commento o no. Esempio; qualcuno ha bloccato un blocco di codice.

I was just curious if this was the case in programming languages other than C#, or if there was a specific reason for this template.

La ragione specifica è la leggibilità umana e non ha nulla a che fare con il linguaggio di programmazione stesso. Per i commenti lunghi che possono scorrere fuori dallo schermo, il lettore può capire che il testo è un commento.

Qualsiasi carattere sarebbe sufficiente come questo esempio;

/*
 # Still a comment.
 # Still readable if very long.
 #
 #
 */

Visual Studio aggiungerà automaticamente * caratteri ai commenti su più righe. Questa è un'opzione configurabile nell'IDE.

Va notato che anche altri IDE popolari offrono questa funzionalità. L'ho visto in Eclipse, WebStorm, IntelliJ e NetBeans. Questi editor aggiungeranno nuove righe ai blocchi di commenti mentre digiti per linguaggi come C ++, Java e PHP.

Non ho mai visto questo fatto per i commenti di blocchi XML o HTML in nessun editor. Sembra essere una caratteristica comune per i linguaggi in stile C.

    
risposta data 19.03.2014 - 15:40
fonte
4

Ho visto questo pattern molte volte in vari linguaggi di sintassi C come C, C ++, Java, C # e persino JavaScript. Gli asterischi extra all'inizio di ogni riga hanno un significato sintattico no . Sono lì solo per aiutare la leggibilità attirando la tua attenzione e rendendo evidente che stai guardando un commento su più righe.

L'uso di questo modello (modello di commento) è preceduto da molti, molti anni dall'apparizione di IDE e editor di testo che possono creare commenti in stile visualizzandoli in un colore unico. Quindi, per avere un'idea dell'utilità di questo approccio, guarda il file che utilizza una varietà di tipi di commenti sulla console o in un editor che visualizza tutto il testo con lo stesso stile. Prova a individuare rapidamente i commenti.

    
risposta data 19.03.2014 - 19:09
fonte

Leggi altre domande sui tag