Programming language for
working with data

Compact and dependency-free

compact fast secure

Transd (pronounced "trans-dee") is a statically typed, general purpose programming language with extended functionality for data processing. It uses a novel execution model - virtual compilation - which facilitates reductions in implementation size and gains in performance.

Albert Berger
author of Transd.



#lang transd

TypeAlias: { Lss: typealias(Lambda<String String>()) }

class Speaker : {
    say: Lss(),
    @init: (λ f Lss() (rebind say f )),
    call: (λ s String() (ret (exec say s)))
}

MainModule: {
    greeter: Lss(λ s String() (ret (+ "Hello, " s "!"))),

    _start: (λ 
        (with sp Speaker( greeter )
            (textout (call sp "World"))
    )   )
}
// Output: Hello, World!

Working with data

Transd is a general purpose language with extended capabilities for working with small to medium sized datasets of various types. These capabilities include:

  • Built-in data related datatypes such as Table, DataBase, etc.
  • Built-in data query language - TQL, - for performing database-like queries on data related types.
  • Transd Structured Data (TSD) data format provides for data interchange (e.g. direct converting text data into program objects), which resembles JSON, but with several essential enhancements.

Read more about processing data with Transd.

Size

Easy embeddability of Transd is one of the design goals, and the language is made both small in physical size and easy to build on both platforms.

Building the Transd interpreter TREE3 on Linux:

$ cd transd/tree3/src
$ g++ -O3 -std=c++14 transd.cpp main.cpp -D__LINUX__ -DNDEBUG -lpthread -o tree3
$ ls --size --human-readable
total 3.3M
8.0K main.cpp  504K transd.cpp  182K transd.hpp  2.5M tree3
$ ./tree3
_) (textout "Hello, Transd!")
Hello, Transd!
_)

The whole language compiles on Windows and Linux with Clang, without any prerequisites, using, basically, the same command:

Linux:

$ clang++ -std=c++14 -O3 -D__LINUX__ -DNDEBUG transd.cpp main.cpp -lpthread -o tree3

Windows:

PS clang++ -std=c++14 -O3 -DWIN32 -DNDEBUG transd.cpp main.cpp -o tree3.exe

Quick Survey of Transd Programming Language