Sto facendo un semplice compilatore per un semplice linguaggio pet che sto creando e che proviene da uno sfondo C (anche se lo sto scrivendo in Ruby) mi chiedevo se fosse necessario un preprocessore.I preprocessi sono obsoleti nelle lingue moderne?
Cosa ne pensi? È ancora necessario un preprocessore "stupido" nelle lingue moderne? Le funzionalità di compilazione condizionale di C# potrebbero essere considerate un "preprocessore"? Ogni linguaggio moderno che non include un preprocessore ha le utilità necessarie per sostituirlo correttamente? (ad esempio, il preprocessore C++ è ora per lo più obsoleto (anche se ancora dipende) a causa dei modelli.)
avrei _not_ dire che il preprocessore è obsoleta in C++. Molte cose per cui è stato usato in C possono essere fatte usando i template, ma ci sono ancora moltissimi usi per questo. –
Il C++ ha ancora bisogno del preprocessore per i file '# include' - anche se spero che possiamo essere d'accordo sul fatto che ci sono modi più sicuri per gestire più file rispetto all'utilizzo di un preprocessore. – sepp2k
@sepp @James sì questo è ciò di cui sto parlando. Chiunque faccia '#define foo (x) ...' in C++ non conosce i modelli C++ o sta lavorando su un codice legacy. – Earlz