100 Helloslanguages
Home / Languages / Emojicode

Emojicode

2016fraglet
esotericobject-oriented.emojic
docker run --rm --platform="linux/amd64" 100hellos/emojicode:latest

MCP + fragletc

MCP
This language supports code execution via MCP and the fragletc CLI.
Install fragletc β†’

Esoteric programming language.

Hello World

#!/usr/bin/env sh

set -e

cd /hello-world
emojicodec -o hello-world -S /artifacts/emojicode/build hello-world.πŸ‡ || exit 1
./hello-world

Coding Guide

Language Version

Emojicode (as installed in this container; run emojicodec --version inside the container if you need the exact version).

Execution Model

  • Compiled language using the emojicodec compiler.
  • Your fraglet replaces the entire contents between πŸ’­ BEGIN_FRAGLET and πŸ’­ END_FRAGLET in hello-world.πŸ‡.
  • The resulting file is compiled and run as a normal Emojicode program.

Key Characteristics

  • Emoji-based syntax for all core constructs (entry point, blocks, variables, printing, comments).
  • Compiled to native code; errors are reported by emojicodec with file/position info.
  • Block-structured with explicit start (πŸ‡) and end (πŸ‰) delimiters.
  • Statement-terminated with ❗️.

Fragment Authoring

  • You write a complete Emojicode program. Your fraglet is not injected into main or any other function body.
  • You must include:
    • Program entry: 🏁
    • A top-level block: πŸ‡ ... πŸ‰
    • Whatever statements you want to run inside that block.
  • The minimal shape looks like:
🏁 πŸ‡
  …your statements…
πŸ‰

Mental Model

You write a full, valid Emojicode program, starting with 🏁 and a πŸ‡ … πŸ‰ block, and we compile and run it as-is.
Nothing is injected for you and no main wrapper is added – if your program wouldn’t compile with emojicodec on its own, it won’t compile as a fraglet.

Basic Syntax

  • 🏁 – Program entry point.
  • πŸ‡ / πŸ‰ – Block start / end.
  • πŸ˜€ – Print statement.
  • πŸ”€β€¦πŸ”€ – String literal delimiters.
  • ❗️ – Statement terminator.
  • πŸ’­ – Comment / annotation.

Variables and Types

  • πŸ–πŸ†• – Declare a mutable variable.
  • Common types:
    • πŸ”’ – Integer.
    • πŸ”‘ – String.
  • Example declaration:
πŸ–πŸ†• x πŸ”’ 5❗️

Examples

Minimal Hello World

This is the smallest program you should expect to compile and run as a fraglet in this vein:

🏁 πŸ‡
  πŸ˜€ πŸ”€Hello from Emojicode fraglet!πŸ”€β—οΈ
πŸ‰

Variables and printing

A slightly richer example with a variable and formatted output:

🏁 πŸ‡
  πŸ–πŸ†• times πŸ”’ 3❗️
  πŸ˜€ πŸ”€About to greetβ€¦πŸ”€β—οΈ
  πŸ˜€ πŸ”€Hello πŸ”€β—οΈ
  πŸ˜€ πŸ”€We greeted πŸ”€β—οΈ
  πŸ˜€ πŸ”€times: πŸ”€β—οΈ
  πŸ˜€ times❗️
πŸ‰

Both examples are complete programs: if you drop them between πŸ’­ BEGIN_FRAGLET and πŸ’­ END_FRAGLET in hello-world.πŸ‡, they should compile and run under this fraglet vein.

Caveats

  • Full program required: Fragments that are just statements like πŸ˜€ πŸ”€HelloπŸ”€β—οΈ without 🏁 πŸ‡ … πŸ‰ will fail to compile.
  • Compiler errors are authoritative: If execution fails, read the emojicodec error message and iterate until it compiles – this guide describes the expected structure, but the compiler is the final arbiter.
  • Ensure your editor supports Unicode emoji so characters are preserved correctly.
  • String literals must be wrapped in πŸ”€ delimiters.
  • Every statement (including variable declarations and prints) must end with ❗️.
  • Variable declarations require the πŸ–πŸ†• prefix and an appropriate type emoji.

Fraglet Scripts

Test

#!/usr/bin/env -S fragletc --vein=emojicode
🏁 πŸ‡
  πŸ˜€ πŸ”€Hello World!πŸ”€β—οΈ
πŸ‰

Container Info

image100hellos/emojicode:latest
build scheduleTuesday
fragletenabled