Giter VIP home page Giter VIP logo

parakeet's Introduction

Parakeet

An interpreted, statically typed, lazily evaluated functional programming language. Parakeet is an attempt to learn more about programming languages and interpreters.

Goal

Parakeet's goal is to be a language with pure functional features while remaining lightweight. Many purely functional languages are hindered by slow compilers and difficult syntax for programmers coming from popular programming languages in other paradigms. Parakeet is designed to be easily picked up by all programmers, whether it is their first functional language or not, while being a good tool for quick iteration.

Use

Parakeet is available to run as a REPL application as well as interpret source files.

SBT Commands

  • compile: Compile the project
  • test: Compile the project and run the test suite
  • run: Compile the project and run the Parakeet REPL
  • run /path/to/sourcefile: Compile the project and run the file located at /path/to/sourcefile
  • clean: Deletes files created by SBT
  • package: Produces a .jar artifact
  • tasks: See other available tasks

Other Commands

  • scalafmt: Scala formatter for the project
    • Formats source files in the style outlined in the project's .scalafmt.conf file

Application Commands

This section assumes you have a built version of Parakeet with the binary name parakeet

  • parakeet: Launches the REPL
  • parakeet /path/to/sourcefile: Compile the project and run the file located at /path/to/sourcefile

Todo

  • AST Structure
  • Numeric Evaluation
    • +, -, *, / operators
    • Modulus operator
    • Exponent operator
  • Primitive String Evalution
  • Start test suite for unit testing previously completed work
  • Primitive Type Storage
  • REPL storage between commands
  • Error handling for Parsing and Runtime
  • Source files
  • Function Declaration
  • Type Declaration
  • Type Restriction
  • Algebraic Data Type evalution
  • String Data Type
  • Entrypoint definition
  • Lazy Evaluation
  • Custom Data Type Storage
  • Pattern Matching
  • Robust Stacktraces for Error Handling
  • Type Inference

parakeet's People

Contributors

ndsmith3 avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

beastybassoon

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.