2013-10-07 11 views
6

Esiste uno strumento per misurare le metriche del codice come LOC (riga di codice), il numero di funzioni e la dimensione media delle funzioni per i programmi Haskell?Codice Metric Tools per Haskell

+1

Se si è interessati anche a fare metriche per stile/qualità, si potrebbe voler controllare hlint (http://hackage.haskell.org/package/hlint). – Cirdec

+0

"dimensione media delle funzioni" è un po 'una quantità problematica: una parte considerevole di tutte le linee nelle funzioni che scrivo sono esse stesse definizioni di funzione ... – leftaroundabout

risposta

2

Ohcount, lo strumento utilizzato da ohloh, almeno sa come distinguere le righe di commento Haskell dalle righe di codice Haskell a parte, come si può vedere ad esempio nello statistics for GHC.

0

Quando Joost Visser (http://www.cs.ru.nl/J.Visser/) era un membro del gruppo di ricerca pura (http://wiki.di.uminho.pt/twiki/bin/view/Research/PURe/WebHome) presso l'Universidade do Minho il gruppo ha prodotto una serie di librerie per la derivazione metriche e documentato il lavoro nei documenti di ricerca.

Non penso che il codice sia stato creato da Hackage, ma il server SVN potrebbe essere ancora attivo. Credo che avessero un codice per estrarre le metriche di Haskell, non sono sicuro che sia mai stato un obiettivo significativo: il codice per estrarre le metriche dalle grammatiche (SdfMetz) è stato scritto in Haskell. Idiomaticamente Haskell tende ad essere piuttosto conciso, il che è piuttosto contrario al valore esplicativo delle metriche.

1

Oltre al già menzionato HLint per il controllo dello stile del codice, non ci sono molti strumenti maturi come negli altri ecosistemi linguistici. Vorrei sottolineare i seguenti strumenti in fase di sviluppo:

  • homplexity: questo progetto "ha lo scopo di valutare la complessità e la qualità del codice Haskell misurando la lunghezza relativa delle dichiarazioni, la loro profondità, e il rapporto di code-per-comment".
  • argon: calcola la complessità ciclomatica.
+1

E questo progetto è anche rilevante per la misurazione della qualità del codice: [dead-code- rilevamento] (https://hackage.haskell.org/package/dead-code-detection). – tomtau