Ciao colleghi programmatori, Stavo discutendo un progetto l'altro giorno con un mio collega ed ero curioso di vedere cosa avevano da dire gli altri o se esistesse già una cosa del genere.
Sfondo
Ci sono molti linguaggi di programmazione. Ci sono molti editor di IDE e sorgenti che evidenziano e modificano il codice sorgente. Seguire perfettamente ed esattamente le regole di un linguaggio per presentare le opzioni di completamento automatico e comprendere gli ambiti del codice è piuttosto complesso. Questo compito è abbastanza complesso che la maggior parte degli IDE implementano diversi editor di sorgenti come plug-in che spesso implementano ripetutamente le stesse funzionalità, ma in un modo diverso (netbeans).
Da quello che posso dire la maggior parte degli editor di IDE e sorgenti implementano nuovamente i parser che usano espressioni regolari, o qualche meta-sintassi Forma Naur per descrivere genericamente il grammer della lingua. Questi parser sono implementati più e più volte.
Domanda
Qualcuno ha tentato di unificare o descrivere un insieme di funzionalità tramite un'API e ha un'interfaccia coerente per analizzare vari linguaggi di programmazione e dialetti. Non sto descrivendo un IDE, ma un'API coerente per qualsiasi programma da utilizzare per analizzare e ottenere le meta-informazioni dal codice sorgente.
Mi rendo conto che vari linguaggi di programmazione offrono molte caratteristiche diverse che sono difficili da "astrarre" in una serie di funzionalità, ma ritengo che sarebbe una buona opportunità.
Mi sembra che questo potrebbe consentire agli autori di interpreti di aiutare a mantenere un interprete grammaticale centrale per la loro lingua. la fondazione Python potrebbe mantenere l'API di grammatica di Python, ANSI l'API di grammatica C, Oracle l'API di grammatica Java, ecc.
Esempio di utilizzo
Se esistesse questa API, i generatori di documentazione del codice potrebbero teoricamente funzionare su tutti i dialetti e le lingue fino a un certo livello. Non importa se il tuo progetto utilizzava 5 lingue diverse, una singola applicazione poteva documentarle tutte e i commenti e i doc-tag all'interno.
Qualcuno ha tentato in modo esauriente?