Il primo utilizzo di commenti come cose semanticamente significative in un programma?

5

In alcuni angoli del mondo della meta-programmazione PHP, è diventato di moda usare i commenti di PHPDoc come meccanismo per fornire informazioni semanticamente significative a un programma. Cioè, un altro codice analizzerà i blocchi doc e farà qualcosa di significativo con le informazioni codificate in quei commenti.

Le annotazioni di Doctrine e la generazione del codice sono un esempio di Questo.

Qual è il primo (o qualche primo) uso di questa tecnica? Ho vaghi ricordi di alcune delle prime implementazioni java Design by Contract che fanno cose simili, ma non sono sicuro che quelle persone stiano inventando la tecnica, o se l'abbiano presa da qualche parte.

Chiedendo principalmente di fornire un contesto storico per gli sviluppatori PHP che non hanno mai incontrato la tecnica prima, e sono diffidenti perché sembra un po 'pazzo.

    
posta Alan Storm 08.11.2013 - 20:49
fonte

2 risposte

6

A seconda di quanto distanzi "semanticamente significativo", è un concetto di almeno 40 anni. C'era un giorno in cui Algol, FORTRAN e COBOL erano gli unici linguaggi multipiattaforma e molti compilatori FORTRAN avevano modi per dichiarare cose che influenzavano il loro comportamento, di solito espresse come commenti. La pratica era così ampia che Dennis Ritchie ha introdotto la direttiva #pragma per C, in particolare per separare tali cose dai normali commenti.

    
risposta data 09.11.2013 - 01:36
fonte
3

La prima volta che ho visto erano alcuni dei primi compilatori Pascal che utilizzavano commenti speciali per controllare la generazione del codice del compilatore. Ciò è stato documentato nel Manuale utente e nel rapporto di Pascal almeno fino al 1974:

B. Compiler options

The compiler may be instructed to generate code according to certain options: in particular, it may be requested to insert or omit run-time test instructions. Compiler directives are written as comments and are designated as such by a $-character as the first character of the comment:

{$<option sequence><any comment>}

Example:

{$T+,P+}

[Ometterò le prossime ~ 1.5 pagine di flag e opzioni supportate.]

Citation: Pascal User Manual and Report , §14.B, pagine 100, 101, copyright Springer-Verlag, 1974.

    
risposta data 09.11.2013 - 08:40
fonte

Leggi altre domande sui tag