My Profile Photo

Spero


A clean programming language


Spero: Clean, Minimal, Potent

TODO: Sell up spero here


Sample Programs:

  • Hello World
  • Simple Calculator
  • Euler Palindrome
  • Bubble Sort
  • Sieve of Erasthosenes
  • Custom Type

Other programs may be added later, but these provide a good overview of the basic systems.

Try Spero out and see what you can come up with.


Try out one of these programs to see how Spero looks and feels or write your own in the editor above
Just click the button and we'll compile and run the program for you, sending whatever output back to your screen

Note: You must provide a no-arg main function for successful running
Note: This isn't currently implemented yet as the error message should make clear

  1. Minimal Syntax

    Variable visibility interleaved with the declaration keyword
    ML-style Type inference reduces the need for type annotations
    Currying and argument forwarding enable easy function composition


  2. Flexible Environment

    Dot-flipping merges OO and Functional Semantics
    Control-flow keywords also affect Dot-flipping
    Pattern matching in loops, match, and even assignment


  3. Extensive Type System

    Easily createe ADTs within the type interface
    Achieve dependent typing using the generic system
    Something about inheritance goes here


  4. Functional Support

    Perform overloading based on the return value
    Simplistic creation with no special keywords or syntax
    Use functions just like any other value


  5. Zero Cost Abstraction

    Hardware memory control provided through compiler library
    Reference semantics to elide copying and enable OO programming
    (Hopeful) metaprogramming support for perfect control


  6. Safety is Always #6

    Restrict unsafe behavior to the dark corners
    Immutable-by-default values with strict mutation restrictions
    Automatic RAII-style resource management through implicit dropping


  1. Landing Page for the Spero Tutorial

    Actual tutorial to come later. I'm not the best at tutorials, so help is appreciated.