Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

An LLVM frontend for the Oberon programming language

License

NotificationsYou must be signed in to change notification settings

zaskar9/oberon-lang

Repository files navigation

Github Actions BadgeGithub Actions BadgeGithub Actions BadgeGithub Actions Badge

A Compiler for the Oberon Programming Language

TheOberon programming language was proposed in 1987 byNiklaus Wirth as a successor to Pascal and Modula-2. Due to this lineage, Oberonis an ALGOL-like language with strong (static and dynamic) typing discipline. The programming paradigm of Oberon canbe classified as imperative, structured, modular, and object-oriented.

About

This project implements a compiler for the Oberon programming language as a frontend to theLLVMCompiler Infrastructure. It is written in C++ and originated as project accompanying the MSc course "CompilerConstruction" taught at theUniversity of Konstanz. As a consequence, this compiler originally onlytargeted the Oberon-0 subset of the language, as described in Niklaus Wirth's book"Compiler Construction" (Chapter 6, pp. 30-32). Since then, thesupported subset of the Oberon has been continuously extended with the goal to eventually cover the full languagespecification as described in the latest version of theOberon Language Report.In addition to these "official" extensions, other features were added to the supported dialect of the Oberon programming language.These feature were either inspired by convenience, such as interfacing with standard libraries, or by the compilerauthor's nostalgia of learningTurbo Pascal 6.0 as his first programminglanguage at high school. A description of the currently supported Oberon dialect in terms of syntax and semantics (ofunofficial features) can be found in the Wiki section of this project repository.

Dependencies and Toolchains

Owing to its origin as a course project, care has been taken that the provided C++ sourcecode can be compiled ondifferent operating systems and with different toolchains. Currently the sourcecode only depends onBoost andLLVM.As of August 2023, the following configurations are tested and known to work.

macOSWindowsMSYS2 (CLANG64)Linux (Ubuntu)
Boost1.87.01.83.01.85.01.83.0
LLVM19.1.717.0.218.1.417.0.6
CMake3.30.03.27.03.29.33.30.0
CXXLLVM Clang 19.1.7
Apple Clang 16.0.0
CL 19.38.33133LLVM Clang 18.1.4GCC 13.3.0

For macOS and Linux, both the x64 and the arm64 version have been tested. Full support for Windows (arm64) is currentlyunder development.Detailed instruction on how to build the Oberon compiler and its dependencies can be found in the Wiki section of thisproject repository.

Getting started

See theDocumentation pages.

About

An LLVM frontend for the Oberon programming language

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp