GOOPEA: A Functional Programming Language with FIP Functionality

Abstract

Functional programming languages offer a unique way of writing code which can often be very concise, elegant and intuitive. However, due to their high-level nature, they are often more memory inefficient than other languages. This is further exacerbated by the memory management strategy reference counting which requires extra memory. This project explores a solution to this problem by extending reference counting with Functional In-Place (FIP) optimization in a new programming language goopea. The core idea of FIP is that objects that are referenced precisely once are reused. A web playground to experiment with goopea was also developed. The playground supports writing and executing of goopea code, contains documentation, and can show a visualization of the state of the memory for every step of the program. We ran benchmarks of multiple programs, comparing the performance with and without FIP. The tests showed that FIP greatly reduced memory usage in most programs, and got a significant speed improvement from the reduced number of memory allocations.

Description

Keywords

Citation

ISBN

Articles

Department

Defence location

Endorsement

Review

Supplemented By

Referenced By