Period.

An English programming language designed to read like an article. Every statement ends with a period, giving your code a calm, literary rhythm.

Why write in Period?

Period blends the precision of programming with the flow of natural language.

📖

Readable by Design

Statements read like sentences. Keywords such as let, be, and show make intent obvious.

🎯

Pinpoint Diagnostics

Errors report the exact line and column range. The parser recovers to report multiple issues at once.

âš¡

Fast Compiler

Implemented in Python and packaged into a single executable with Nuitka for quick run cycles.

📦

Modules & Standard Library

Import built-in modules such as math, string, random, time, json, and os. Local modules and relative imports are supported too.

🧠

Turing Complete

Variables, conditionals, loops, recursive functions, lists, dictionaries, and classes provide full computing power.

0 Single executable
0 Percent free & open source
0 Core data types
0 Punctuation to remember

Long-running loop runtime.

Summing 1..N with a while loop. Lower is better.

Benchmarked with benchmark_long.py. Period compiles the loop to a cached DLL and runs it in-process, so both 1M and 5M iterations beat the equivalent C program compiled with TCC.

Hello, Period

A warm greeting in three lines. Every statement ends with a period.

-- Greet the world.
let greeting be "Hello, World!".
show greeting.

Reads like a sentence.

-- Declare a variable.
let name be "Period".
show name.

Keywords like let, be, and show make intent obvious at a glance.

Pinpoint error messages.

hello.period:2:11: error: Expected '.' at end of statement.
     2 | show name
       |           ^

The parser recovers from errors and reports every issue with exact line and column ranges.

VS Code extension included.

Syntax highlighting, hover hints, auto-completion, formatting, go-to-definition, and live LSP diagnostics.

code --install-extension period-language.vsix

Recursive and readable.

-- A recursive factorial.
define factorial with n:
    if n <= 1 then:
        return 1.
    return n * factorial with (n - 1).

Define functions with plain English and call them with with.

Try ideas instantly.

$ period
>>> let x be 10.
>>> show x * 2.
20
>>> exit.

Run period without arguments to start the interactive shell.

See it in action.

Click a tab to switch examples. The same sentence-like style runs everywhere.

-- Greet the world.
let greeting be "Hello, World!".
show greeting.
-- Count to five.
let i be 1.
while i <= 5 repeat:
    show i.
    set i to i + 1.
-- A recursive factorial.
define factorial with n:
    if n <= 1 then:
        return 1.
    return n * factorial with (n - 1).
-- A tiny class.
class Person:
    init with name:
        set this name to name.
    define greet with greeting:
        show greeting + ", " + this name + "!".

let ada be new Person with "Ada".
tell ada to greet with "Hello".

Start writing in Period.

Download the latest release, install it in seconds, and write your first sentence-like program.