Top 1,000 Features Creators Events Podcasts Extensions Blog Explorer CSV Download

bog

< >

bog is a programming language created in 2020.

#798on PLDB 4Years Old
Download source code:
git clone https://github.com/Vexu/bog

Small, strongly typed, embeddable language.


Example from the web:
let {print} = import "std.io" let world = "world" print(f"hello {world}!")

Language features

Feature Supported Token Example
Async Await
let {print} = import "std.io"
let foo = fn()
    print("foo started")
    let bar_frame = async bar()
    print("in foo")
    let bar_res = await bar_frame
    print("foo finished")
    return bar_res
let bar = fn()
    print("bar started")
    suspend
    print("bar resumed")
    suspend
    print("bar finished")
    return 1
print("main started")
let foo_frame = async foo()
print("in main")
let res = await foo_frame
print("main finished:", res)
hasForLoops
let mut sum = 0
for let c in "hellö wörld"
  match c
      "h" => sum += 1
      "e" => sum += 2
      "l" => sum += 3
      "ö" => sum += 4
      "w" => sum += 5
      "d" => sum += 6
hasTryCatch
let foo = fn(arg)
  try
      fails_on_1(arg)
      fails_on_2(arg)
      fails_on_3(arg)
  catch let err
      return err
  return 99
Destructuring
let add = fn ((a,b)) a + b
let tuplify = fn (a,b) (a,b)
return add(tuplify(1,2)) # 3
Semantic Indentation
File Imports
let {print} = import "std.io"
Strings
"pldb"
Assignment
let pldb = "pldb"
Print() Debugging

View source

- Build the next great programming language · About · Resources · Acknowledgements · Part of the World Wide Scroll