Oberon (programming language): Difference between revisions

Content deleted Content added
Added {{External links}} tag
Oberon-07: Added RP2040 and RP2350 support.
Tags: Mobile edit Mobile web edit
Line 219:
Oberon-07, defined by Niklaus Wirth in 2007 and revised in 2008, 2011, 2013, 2014, 2015, and 2016 is based on the original version of Oberon rather than Oberon-2. The main changes are: explicit numeric conversion functions (e.g., <code>FLOOR</code> and <code>FLT</code>) must be used; the <code>WITH</code>, <code>LOOP</code> and <code>EXIT</code> statements were omitted; <code>WHILE</code> statements were extended; <code>CASE</code> statements can be used for type extension tests; <code>RETURN</code> statements can only be connected to the end of a function; imported variables and structured value parameters are read-only; and, arrays can be assigned without using <code>COPY</code>.<ref>{{Cite report |last=Wirth |first=Niklaus |date=3 May 2016 |url=https://people.inf.ethz.ch/wirth/Oberon/Oberon07.Report.pdf |title=The Programming Language Oberon-07 |website=ETH Zurich, Department of Computer Science |access-date=17 January 2021}}</ref>
 
Oberon-07 compilers have been developed for use with many different computer systems. Wirth's compiler targets a [[reduced instruction set computer]] (RISC) processor of his own design that was used to implement the 2013 version of the [[Project Oberon]] operating system on a Xilinx [[field-programmable gate array]] (FPGA) Spartan-3 board. Ports of the RISC processor to FPGA Spartan-6, Spartan-7, Artix-7 and a RISC emulator for Windows (compilable on Linux and [[macOS]], and binaries available for Windows) also exist. [https://miasap.se/obnc/ OBNC] compiles via C and can be used on any Portable Operating System Interface ([[POSIX]]) compatible operating system. The commercial [http://www.astrobe.com Astrobe] implementation targets 32-bitSTM ARM Cortex-M0, M3, M4, M7 and M7Raspberry Pi RP2040 and RP2350 microcontrollers. The [https://github.com/congdm/Patchouli-Compiler Patchouli] compiler produces 64-bit Windows binaries. [http://www.exaprog.com/ Oberon-07M] produces 32-bit Windows binaries and implements revision 2008 of the language. [https://sites.google.com/site/oberon07compiler/versii Akron's] produces binaries for both Windows and Linux. [http://oberspace.org/oberonjs.html OberonJS] translates Oberon to [[JavaScript]]. There is [https://visual.sfu-kras.ru online IDE for Oberon]. [https://github.com/lboasso/oberonc oberonc] is an implementation for the [[Java virtual machine]].
 
===Active Oberon===