Giter VIP home page Giter VIP logo

alfa-d's Introduction

ALFA-D

A Programming Language built with ANTLR4

Description

ALFA-D aims at providing an easy way of dinamically manipulating information tables and of accessing/storing data from/to external .csv files. Its implementation is done in a way that allows the programmer to develop table interaction scripts with primitive variables, while also allowing data prints on the command line or onto files.

As a very simplified language, it is table oriented and follows some characteristics related to SQL programming (table operations wise) and Java (sintax wise). Practically speaking, this work envolves 2 languages:

  • One for the compiler, that validates table manipulation programs - this is the main language, where compilation to Java code occurs.
  • One to read and validate structured information stored in .csv files - this envolves an interpreter.

Repository Structure

/docs - contains the final report on the work developed

/example-code - contains a set of programs that demonstrate the use of ALFA-D

/src - contains the source code for the compiler and interpreter

Data Types

Primitives:

  • bool - boolean bit
  • int - 32 bit integer
  • real - 64 bit float

Non-Primitives:

  • String - character sequence between " "
  • Table - data structure of a given primitive type for each column; contains a header line
  • Column - particular case of a Table variable, with limited operations, 1 column and N lines
  • Line - particular case of a Table variable, with limited operations, N columns and 1 line

Sintax

ALFA-D supports single and multi-line comments, variable declaration, definition and instantiation, arithmetic operations, conditional statements, for and while loops and function definition.

Table operations include: create, load, create column, create line, union, intersect, difference, join and join on, remove where, increase, decrease, add, clear and save.

Authors

The authors of this repository are André Pedrosa, Duarte Castanho, Filipe Pires, João Alegria and Lucas Silva, and the project was developed for the Compilers Course of the licenciate's degree in Informatics Engineering of the University of Aveiro.

For further information, please read our report or contact us at [email protected].

alfa-d's People

Contributors

filipepires98 avatar

Watchers

James Cloos avatar

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.