Domanda

Can PMD essere personalizzato per supportare pienamente una nuova lingua, in un ragionevole lasso di tempo. Voglio dire So che tecnicamente quasi tutto può essere fatto, ma im domandandosi se questo può essere fatto in un ragionevole lasso di tempo? Per esempio. <2 settimane

Questa pagina parla di come scrivere un parser CPD http: //pmd.sourceforge. / CPD-parser-HOWTO.html net

Ma questo è solo per la copia / incolla di rilevamento? Non scrivere un parser CPD mi danno pieno sostegno della PMD in termini di set Rile?

È stato utile?

Soluzione

Non vorrei immaginare, ma io non sono un esperto di PMD (e ho il mio pregiudizio, controllare il mio bio).

I temi sono:

  • Si può definire una sintassi per la mia langauge rapidamente (forse, a seconda di quanto sei bravo, come disordinato il linguaggio è, e la forza della macchina di analisi offerto da PMD)
  • Si può definire la semantica del mio linguaggio in modo che "i controlli semantici" forniti da lavoro PMD. Devi fare questo, perché sintassi (e uno strumento) dice letteralmente nulla semantica della sintassi. Direi che lo strumento PMD 'controlli semantici' sono abbastanza cablati nei dettagli precisi di Java; se il linguaggio abbinato perfettamente java, questo sarebbe il lavoro pari a zero. Ma non è così, altrimenti non sarebbe chiedere la questione. E la semantica langauge differenze, anche quelli minori, causano cambiamenti discontinui al interpreation del codice. Prima di arrivare a fare anche la semantica "seri", è molto probabile che devono costruire un simbolo di tabella di mappatura identificatori nel codice per le dichiarazioni (e il tipo "semantico") per quei simboli. Sulla base di strumento di infrastrutture con cui lavoro, questo passo da solo prende 1-2 mesi per un linguaggio vero e proprio.
  • Infine, si rischia di dover codici speciali controlli PMD che sono specifici per il tuo langauge. Che richiede tempo ed energia, anche.

I costruire generico macchinari compilatore-tipo (parser, flusso analizzatori dama stile / errore) e ottenere chiesto l'equivalente di tutta questa domanda il tempo WRT ai nostri macchinari. Cerchiamo di avere un sacco di macchine a disposizione, cercare di rendere più facile l'integrazione di nuovi linguaggi, e noi stiamo lavorando per cercare di rendere questo "comodo e veloce" per 15+ anni. La sua ancora non è conveniente, e non c'è modo di fare questo con i nostri strumenti in poche settimane. Dubito PMD è meglio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top