MyNixOS website logo
Description

Haskell source code analysis program.

The Haskell analysis program is a prototype Haskell source code analyzer. It offers functionality to convert Haskell source code into an equivalent meta-model. It supports the calculation of three structural metrics, module size (LOC), module cohesion (LCOM) and module coupling (CBO). Several aggregation methods are supported, such as average, median, Gini coefficient and ideal value deviation.

DESCRIPTION: The Haskell analysis program is a prototype Haskell source code analyzer. It offers functionality to convert Haskell source code into an equivalent meta-model. It supports the calculation of three structural metrics, module size (LOC), module cohesion (LCOM) and module coupling (CBO). Several aggregation methods are supported, such as average, median, Gini coefficient and ideal value deviation.

This software is developed as part of the research described in the paper "Assessing the quality of evolving Haskell systems by measuring structural inequality", published in the proceedings of the ACM SIGPLAN Haskell Symposium 2020 conference. https://doi.org/10.1145/3406088.3409014

EXECUTABLE: Currently the application 'looks' for the project-to-analyse in the <project-root>/dataset/input folder. Therefore, the HaskellAnalysisProgram executable must be run from the <project-root> location. The project-to-analyse must be entered into the <project-root>/dataset/input folder. The analysis start by calling; HaskellAnalysisProgram <project-to-analyse> (e.g., HaskellAnalysisProgram programX). Run HaskellAnalysisProgram without arguments to see the various options to use the HaskellAnalysisProgram.

AUTHORS: Henrie Vos Sander Kamps

CREDITS: Bastiaan Heeren.

Metadata

Version

0.1.0

License

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows