All Projects → odin-lang → Odin

odin-lang / Odin

Licence: bsd-2-clause
Odin Programming Language

Programming Languages

language
365 projects

Labels

Projects that are alternatives of or similar to Odin

Pyast64
Compile a subset of the Python AST to x64-64 assembler
Stars: ✭ 93 (-93.32%)
Mutual labels:  compiler
Faust
Functional programming language for signal processing and sound synthesis
Stars: ✭ 1,360 (-2.37%)
Mutual labels:  compiler
Zxbasic
The Sinclair ZX Spectrum BASIC compiler!
Stars: ✭ 101 (-92.75%)
Mutual labels:  compiler
Webpack Core Usage
webpack2完整系列课程,欢迎阅读。同时欢迎移步我的react全家桶文章全集: https://github.com/liangklfangl/react-article-bucket
Stars: ✭ 94 (-93.25%)
Mutual labels:  compiler
Artist
ARTist's core implementation meant to be included in the art project. Provides ARTist APIs and boilerplate code for modules.
Stars: ✭ 97 (-93.04%)
Mutual labels:  compiler
Fanx
A portable programming language
Stars: ✭ 101 (-92.75%)
Mutual labels:  compiler
Selfie
An educational software system of a tiny self-compiling C compiler, a tiny self-executing RISC-V emulator, and a tiny self-hosting RISC-V hypervisor.
Stars: ✭ 1,318 (-5.38%)
Mutual labels:  compiler
Purescript Python
A Python backend for PureScript.
Stars: ✭ 103 (-92.61%)
Mutual labels:  compiler
Numba Scipy
numba_scipy extends Numba to make it aware of SciPy
Stars: ✭ 98 (-92.96%)
Mutual labels:  compiler
Nanojit
NanoJIT is a small, cross-platform C++ library that emits machine code.
Stars: ✭ 101 (-92.75%)
Mutual labels:  compiler
Dataformsjs
🌟 DataFormsJS 🌟 A minimal JavaScript Framework and standalone React and Web Components for rapid development of high quality websites and single page applications.
Stars: ✭ 95 (-93.18%)
Mutual labels:  compiler
Evm2wasm
[ORPHANED] Transcompiles EVM code to eWASM
Stars: ✭ 96 (-93.11%)
Mutual labels:  compiler
Lixincompiler
参考自龙书上的语言,自己实现了一个编译器的前端。
Stars: ✭ 101 (-92.75%)
Mutual labels:  compiler
Ngraph
nGraph has moved to OpenVINO
Stars: ✭ 1,322 (-5.1%)
Mutual labels:  compiler
Fcc
Fedjmike's C Compiler
Stars: ✭ 101 (-92.75%)
Mutual labels:  compiler
Amplifier.net
Amplifier allows .NET developers to easily run complex applications with intensive mathematical computation on Intel CPU/GPU, NVIDIA, AMD without writing any additional C kernel code. Write your function in .NET and Amplifier will take care of running it on your favorite hardware.
Stars: ✭ 92 (-93.4%)
Mutual labels:  compiler
Bqn
An APL-like programming language. Self-hosted!
Stars: ✭ 100 (-92.82%)
Mutual labels:  compiler
Orchestra
One language to be RegExp's Successor. Visually readable and rich, technically safe and extended, naturally scalable, advanced, and optimized
Stars: ✭ 103 (-92.61%)
Mutual labels:  compiler
Hissp
It's Python with a Lissp.
Stars: ✭ 102 (-92.68%)
Mutual labels:  compiler
Vc4c
Compiler for the VC4CL OpenCL implementation
Stars: ✭ 101 (-92.75%)
Mutual labels:  compiler

Odin logo
A fast, concise, readable, pragmatic and open sourced programming language.


The Odin Programming Language

The Odin programming language is fast, concise, readable, pragmatic and open sourced. It is designed with the intent of creating an alternative to C with the following goals:

  • simplicity
  • high performance
  • built for modern systems
  • joy of programming

Website: https://odin-lang.org/

package main

import "core:fmt"

main :: proc() {
	program := "+ + * 😃 - /";
	accumulator := 0;

	for token in program {
		switch token {
		case '+': accumulator += 1;
		case '-': accumulator -= 1;
		case '*': accumulator *= 2;
		case '/': accumulator /= 2;
		case '😃': accumulator *= accumulator;
		case: // Ignore everything else
		}
	}

	fmt.printf("The program \"%s\" calculates the value %d\n",
	           program, accumulator);
}

Documentation

Getting Started

Instructions for downloading and installing the Odin compiler and libraries.

Learning Odin

Overview of Odin

An overview of the Odin programming language.

Frequently Asked Questions (FAQ)

Answers to common questions about Odin.

The Odin Wiki

A wiki maintained by the Odin community.

Odin Discord

Get live support and talk with other odiners on the Odin Discord.

References

Language Specification

The official Odin Language specification.

Articles

The Odin Blog

The official blog of the Odin programming language, featuring announcements, news, and in-depth articles by the Odin team and guests.

Setup

Odin only supports x86-64/amd64 at the moment (64-bit), relies on LLVM for code generation and an external linker.

In addition, the following platform-specific steps are necessary:

  • Windows

    • Have Visual Studio installed (MSVC 2010 or later, for the linker)
    • Have a copy of opt.exe and llc.exe in Odin/bin. Pre-built Windows binaries can be found here and must be explicitly copied
    • Open a valid command prompt:
      • Basic: run the x64 Native Tools Command Prompt for VS2017 shortcut bundled with VS 2017, or
      • Advanced: run vcvarsall.bat x64 from a blank cmd session
  • MacOS

    • Have LLVM explicitly installed (brew install llvm)
    • Have XCode installed (version X.X or later, for linking)
    • Make sure the LLVM binaries and the linker are added to your $PATH environmental variable
  • GNU/Linux

    • Have LLVM installed (opt/llc)
    • Have Clang installed (version X.X or later, for linking)
    • Make sure the LLVM binaries and the linker are added to your $PATH environmental variable

Then build the compiler by calling build.bat (Windows) or make (Linux/MacOS). This will automatically run the demo program if successful.

Notes for Linux:: The compiler currently relies on the core and shared library collection being relative to the compiler executable. Installing the compiler in the usual sense (to /usr/local/bin or similar) is therefore not as straight forward as you need to make sure the mentioned libraries are available. As a result, it is recommended to simply explicitly invoke the compiler with /path/to/odin in your preferred build system, or add /path/to/odin to $PATH.

Please read the Getting Started Guide for more information.

Requirements to build and run

Please read the Getting Started Guide.

  • Windows

    • x86-64/amd64
    • MSVC 2010 installed (C++11 support)
    • LLVM binaries for opt.exe, llc.exe, and lld-link.exe
    • Requires MSVC's link.exe as the linker
      • run vcvarsall.bat to setup the path
  • MacOS

    • x86-64/amd64
    • LLVM explicitly installed (brew install llvm)
    • XCode installed (for the linker)
  • GNU/Linux

    • x86-64/amd64
    • Build tools (ld)
    • LLVM installed
    • Clang installed (temporary - this is Calling the linker for now)
  • FreeBSD

    • x86-64/amd64
    • Build tools (ld)
    • LLVM installed
    • Clang installed (temporary - this is Calling the linker for now)

Other platforms may be supported but are experimental for the time being.

Warnings

  • The Odin compiler is still in development.

Demonstrations:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].