Git Product home page Git Product logo

redgush / flycatcher Goto Github PK

View Code? Open in Web Editor NEW
4.0 0.0 0.0 279 KB

A general purpose, statically typed, compiled programming language written in Rust.

License: MIT License

Rust 100.00%
programming programming-language lexer parser compiler cranelift language rust compiler-construction optimization high-level high-level-programming compile compile-time meta-programming sdk std standard-library

flycatcher's Introduction

Flycatcher

Flycatcher is a general purpose, high-level, multi-paradigm, statically typed, compiled programming language. The goals of Flycatcher are similar to that of Rust; create a safe, fast programming language that can offer the efficiency and ability of systems programming to programmers new and old.

Flycatcher is not in a released alpha state yet, meaning it is not yet functional. While some features may be finished, others may not be, such as the compiler's code generator.

Goals

  • Efficiently prevent the need to manually manage memory. In the C language, explicit calls to malloc, realloc and free are very common, often necessary for even small programs. The management of memory should happen at compile time, for maximum performance.
  • It should be easy to learn, for programmers new and old.

Examples

Hello, world!

@func main() {
    println("Hello, world!"); // => Hello, world!
}

Duck Typing

Flycatcher is a statically "duck typed" programming language, which means "if it looks like a duck and quacks like a duck, it must be a duck." It stems off of this concept quite a bit, for example:

@type my_type = {
    value: uint64 // Unsigned 64-bit integer
}

@func example_function(obj: my_type) {
    println(obj.value);
}

@func main() {
    example_function({
        value: 42
    }); // => 42
}

flycatcher's People

Contributors

trimorphdev avatar

Stargazers

 avatar  avatar  avatar  avatar

flycatcher's Issues

AllocString implementation for FlycatcherString

Currently, the AllocString implementation looks like this;

/// A general purpose string that implements the `FlycatcherString` trait.  It uses the global
/// allocater to allocate memory for the string.
pub struct AllocString {

    

}

It does not implement the FlycatcherString crate and therefore isn't usable. This will be a commonly used struct, so this should be higher priority, especially since it is needed for the flycatcher-lexer crate.

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.