Skip to content

ceu-lang/pico-ceu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6b3b78c · Jul 30, 2019
May 14, 2019
Jan 29, 2019
Jul 30, 2019
Mar 19, 2019
Mar 22, 2019
Mar 19, 2019
Mar 19, 2019
Jun 26, 2017
May 13, 2019
Jun 26, 2017
Jun 26, 2017

Repository files navigation

pico-Céu is a tiny programming environment for visual and interactive applications such as video games. It is composed of the programming language Céu and minimalist libraries for input, graphics, network, and sound.

Follows an example that draws a line pixel by pixel from the top-left towards the bottom-right of the screen, one pixel every 100ms:

var integer i;
loop i in [-25 -> 25] do            // executes 51 times, varying i from -25 to 25
    emit GRAPHICS_DRAW_PIXEL(i,i);  //   draws a pixel at (i,i)
    await 100ms;                    //   waits for 100 milliseconds
end

The next example draws, at the same time, an additional line from the top-right towards the bottom-left of the screen:

par/and do  // executes the next five indented lines in parallel...
    var integer i;
    loop i in [-25 -> 25] do
        emit GRAPHICS_DRAW_PIXEL(i,i);    // draws from (-25,-25) to (25,25)
        await 100ms;
    end
with        // ...with the next five indented lines...
    var integer i;
    loop i in [-25 -> 25] do
        emit GRAPHICS_DRAW_PIXEL(i,-i);   // draws from (-25,25) to (25,-25)
        await 100ms;
    end
end         // ...and terminates when they both terminate (par/and)

pico-Céu design goals:

  • Structured programming model:
    • sequential execution, no callbacks
    • logical parallelism, deterministic concurrency
  • Explicit I/O operations:
    • await for input
    • emit for output
  • Straightforward graphics:
    • immediate feedback
    • pixel-level manipulation and visualization
  • Simple development cycle:
    • minimalist API
    • easy installation and execution

pico-Céu inspirations:

  • pico-8:
    • minimalist and focused programming environment
  • Basic:
    • graphics with immediate feedback
    • text and cursor facilities
  • Pascal:
    • verbose and comprehensible syntax

Installation

Windows

https://github.com/ceu-lang/ceu-maker

Linux

Install Céu:

https://github.com/ceu-lang/ceu/

Install Céu-SDL:

https://github.com/ceu-lang/ceu-sdl/

Compile and Run

Edit Makefile.conf to point to your ceu and ceu-sdl directories. To compile and run an application, run make and set CEU_SRC:

$ make CEU_SRC=<path-to-pico-ceu-application>

Examples

The examples/ directory contains a number of examples.

Documentation

API Manual:

https://ceu-lang.github.io/pico-ceu/out/manual/v0.40/