Skip to content

Latest commit

 

History

History
32 lines (19 loc) · 1.55 KB

README.md

File metadata and controls

32 lines (19 loc) · 1.55 KB

Eva: A Functional Programming Language

Overview

Eva is a modern functional programming language designed to offer an intuitive and powerful approach to software development. It seamlessly integrates core concepts of functional programming with the versatility of object-oriented paradigms.

eva Figure 1: Interpreter Workflow Diagram - Depicting the lexing, parsing, and interpretation phases, this figure outlines the transformation from source code to executable output in the Eva language interpreter.

Features

  • Basic Expressions & Variables: Eva handles basic expressions and variables with a focus on scopes and lexical environments. It features robust control structures and employs a parser generator for syntax analysis.

  • Functional Programming: The language supports function abstraction and invocation with an emphasis on closures, lambda functions, and IILEs (Immediately-invoked Lambda Expressions). It also includes a well-defined call-stack, supports recursion, and provides syntactic sugar for enhanced readability.

  • Object-Oriented Programming: Eva extends its functionality to object-oriented concepts, offering both class-based and prototype-based paradigms. It allows developers to define classes, create instances, and organize code into modules for better modularity.

Getting Started

To run Eva programs, use the following command:

$ ./bin/eva -f ./test.eva

Testing

Eva includes a comprehensive test suite written in JavaScript. To run the tests, execute:

$ node __tests__/run.js