Skip to content

Week 2 29th Oct (Inception Report)

Louis Kueh edited this page Nov 2, 2018 · 15 revisions

Questions

  • Check inception report? + Second Marker
  • How much research should I be doing? (Literature survey)
    • FSharpLint indepth workings?
    • Ionide indepth workings?
    • Others, e.g. Hlint/Credo?
    • Possible heuristics hints? - surveys?

Inception report

Aims & background material

The aim of the project: Implement more sophisticated stylistic and error hints for F# targeted at new programmers.

Examples include:

  • unbalanced opening bracket is currently not detected
  • identify complex expressions and suggest simplification
  • replace anonymous functions used in complex expression by using a sub-function instead

The ultimate goal would be to incorporate this project into Ionide, which is a widely used plugin for Intellisense and other features for F#.

Background research

There is currently a project with similar goals called FSharpLint. FSharpLint currently sits within Ionide and provides stylistic hints. The full number of analysers/features supported are listed below:

Student Summary of project deliverables, fallbacks & extensions

The project deliverables can be broadly broken into three parts:

  • FSharp learning
  • Heuristics Research
  • Implementation

FSharp Learning

To improve functional language skills (as someone with only basic experience) a core personal objective is to learn FSharp and gain knowledge in how a functional language differs from a procedural one.

Functional programming exists within several procedural languages such as Javascript and Lambdas in modern C++.

It is expected that I will be able to build up a basic understanding of F# by the end of November, and start programming a web application in Fable (Fsharp framework) to gain

  • an understanding of how F Sharp would be used for real work
  • as well as record down the possible heuristics/errors I encounter as a beginner This web application would ideally be completed during the winter holidays before the start of the next term (Jan 7th).

Heuristics

In-depth research needs to be completed to investigate different types of heuristics that could be implemented into the project. This can be from

  • surveys from open source community
  • surveys from academics
  • surveys from industry
  • own experience (Recording down issues)

For my own experience, I would be recording down my issues throughout the project.

For the planned surveys, this would ideally occur after setting up an initial implementation of the project. The current planned date is January 7th 2019 (for making/distributing the surveys).

Implementation

This will be the hardest and also the most important part. Currently the visualisation is to:

  • Firstly evaluate the current similar/available projects to determine whether they can be used as an initial starting point, or if a new framework needs to be developed from scratch

From current research it is expected that some of the functionality of the project will be able to be done through current projects. Additional functionality that is not supported would then be needed to written from scratch and modified to combine with the starting code.

Summary of Risks

Clone this wiki locally