Project Oberon
Project Oberon http://www.projectoberon.com/
-----------------------------------------------------
来源 https://github.com/vishaps/voc
ѴishapOberon
ѴishapOberon是Oberon-2语言和库的免费开源(GPLv3)实现,可用于Linux,BSD,Android,Mac和Windows等传统操作系统。
Vishap的Oberon编译器(voc)使用C后端(gcc,clang或msc)在Unix,Mac或Windows下编译Oberon程序。Vishap Oberon包括来自Ulm,oo2c和Ofront Oberon编译器的库,以及符合Oakwood Guide for Oberon-2编译器的默认库。
内容
安装
编译“Hello”应用程序
许可证
平台支持和移植
语言支持和库
历史
路线图
贡献者
名称“ѴishapOberon”的起源
参考
安装
使用以下简单步骤安装Oberon编译器和库很容易:
- 安装先决条件,如git,gcc,静态C库,diff utils。
- 克隆存储库并运行'make full'。
- (可选)使用“make install”安装到系统目录,例如/ opt或/ usr / local / share。
- 设置PATH变量以包含编译器二进制文件。
这些详述如下:
1.安装先决条件
平台 | 包 |
---|---|
Debian / Ubuntu / Mint ...... | apt-get install git |
Fedora / RHEL / CentOS ...... | yum install git gcc glibc-static (dnf 而不是yum 最近的Fedoras) |
FreeBSD的/ OpenBSD系统/ NetBSD的 | pkg install git |
OpenSUSE系统 | zypper install gcc git-core make glibc-devel-static |
Cygwin的 | 使用setup-x86 [_x64]添加包git,make,diffutils和gcc-core |
达尔文 | 在命令行键入'git'并接受安装它的提示。 |
更多详细信息,包括MinGW和MS C,在安装。
2.克隆并构建编译器和库
git clone https://github.com/vishaps/voc
cd voc
make full
make full
将在voc / install的本地存储库下创建一个安装目录。
mmake full
运行ldconfig
以配置链接器以在voc / install中查找库,但您需要自己更新程序搜索PATH(请参阅下面的步骤4)。
3.(可选)安装到系统目录
运行make install
作为根目录下复制VOC /安装到相应的目录,你的操作系统如下:
系统 | 当make install 把安装 |
---|---|
Linux的 | /opt/voc |
BSD | /usr/local/share/voc |
视窗 | 请参阅Windows安装 |
Termux | /data/data/com.termux/files/opt/voc |
make install
ldconfg
使用新库位置进行更新。
4.设置PATH环境变量
由于不同系统和用户管理其PATH的方式有很多种,因此我们会让您更新路径以包含编译器二进制文件。
双方make full
并make install
就具体设置到系统路径显示的说明。
供参考,这将是:
安装选择 | 设置路径 |
---|---|
只是 make full | export PATH="your-repository-clone/install/bin:$PATH" |
make install 在Linux上 | export PATH="/opt/voc/bin:$PATH" |
make install 在BSD上 | export PATH="/usr/local/share/voc/bin:$PATH" |
make install 在Windows上 | 请参阅Windows安装 |
make install 在Termux上 | export PATH="/data/data/com.termux/files/opt/voc/bin:$PATH" |
另请参阅安装。
编译器根据加载的位置查找安装的其余部分。
'Hello'应用程序
附加到Oberon.Log的任何内容都会自动写入stdout,因此以下常规Oberon程序将显示“Hello。”:
MODULE hello; IMPORT Oberon, Texts; VAR W: Texts.Writer; BEGIN Texts.OpenWriter(W); Texts.WriteString(W, "Hello."); Texts.WriteLn(W); Texts.Append(Oberon.Log, W.buf) END hello.
或者,Oakwood模块Out可用于直接写入stdout:
MODULE hello; IMPORT Out; BEGIN Out.String("Hello."); Out.Ln END hello.
编译如下:
voc hello.mod -m
-m参数告诉voc这是一个主模块,并生成一个可执行的二进制文件。
像往常一样在Linux(./hello
)或Windows(hello
)上执行。
有关编译的更多详细信息,请参阅编译。
查看包含模块的接口。
要查看模块接口的定义,请使用“showdef”程序。
$ showdef Out DEFINITION Out; VAR IsConsole-: BOOLEAN; PROCEDURE Char(ch: CHAR); PROCEDURE Flush; PROCEDURE Int(x: INT64; n: INT64); PROCEDURE Ln; PROCEDURE LongReal(x: LONGREAL; n: INT16); PROCEDURE Open; PROCEDURE Real(x: REAL; n: INT16); PROCEDURE String(str: ARRAY OF CHAR); END Out.
执照
Vishap Oberon的前端和C后端引擎是Josef Templ的Ofront的一个分支,它已经在FreeBSD许可下发布。与Ofront不同,Vishap Oberon不包括Oberon v4 GUI环境。
Ulm Oberon图书馆和Ooc图书馆根据GPL分发。使用这些库的专有代码可能不是静态链接的。
Voc工具在GPLv3下发布。
libVishapOberon中的大多数运行时都是在GPLv3下分发,运行时异常。
平台支持和移植
Vishap Oberon支持32位和64位小端架构,包括Intel x86和x64,arm和ppc。
它在gcc,clang和Microsoft Visual C下编译。
安装支持GNU / Linux,MAC OSX,BSD和Windows(本机和cygwin)。
AC程序(src / tools / make / configure.c)检测运行它的C编译器和操作系统的详细信息。
以下系统得到认可:
- Linux,包括Ubuntu和Centos衍生品。
- BSD,包括OpenBSD和FreeBSD。
- Windows下的Cygwin,Cygwin下的MingW,Windows上的Ubuntu上的Bash。
此外,还提供了一个Windows .cmd,用于与Microsoft C一起构建。
有关详细信息,包括如何添加对无法识别的系统的支持,请参阅 移植。
语言支持和图书馆
Vishap Oberon支持Oberon 2编程语言,包括类型绑定程序。SYSTEM.Mod包含其他功能和64位支持的一些更改。
整数和集类型大小:
类型 | -O2选项(默认) | -OC选项 |
---|---|---|
SHORTINT | 8位 | 16位 |
整数 | 16位 | 32位 |
LONGINT | 32位 | 64位 |
组 | 32位 | 64位 |
图书馆
包含的库便于从主要的Oberon系统移植代码:
- Oberon V4和S3兼容的库集。
- Ooc(优化oberon-2编译器)库端口。
- 乌尔姆的Oberon系统库端口。
- 奥克伍德标准库。
- 其他一些可自由再发行的库。
奥林伍德图书馆支持-O2和-OC选项,而ULM,OOC和ETH系统3库仅适用于-O2(默认)编辑。
Vishap Oberon还支持Oberon-07的一些功能。
另请参见功能。
贡献者
Joseph Templ开发了前端作为将Oberon-2程序转换为语义上等效的C程序的工具。它于1995年获得版权保护,并于2012年转为免费BSD许可证。
来自Joseph的github存储库:
前线的设计和实施归功于Josef Templ ...前沿部分基于Regis Crelier的博士论文和Stefan Gehring的毕业论文,均在苏黎世联邦理工学院计算机系统研究所进行。
Norayr Chilingarian于2013年分叉,从ULM Oberon,OO2C和ETH Oberon System 3 移植了大量库,并增加了对包括64位系统在内的更多平台的支持。
自2016年1月以来,David Brown一直致力于为使用MSC,cygwin或mingw的更多平台添加支持。最近,他在编译器中推广了基本类型支持,允许例如32位系统上的64位LONGINT和64位上的32位LONGINT比特系统。
“ѴishapOberon”这个名字的由来
奥伯伦
Oberon是一种编程语言,操作系统和图形用户界面。它最初由Niklaus Wirth和JürgGutknecht在20世纪80年代后期在苏黎世联邦理工学院设计和实施,它表明现代操作系统和GUI的基本原理可以在比现代系统更小的清晰简单的代码中实现。
Oberon编程语言是Pascal和Modula语言的演变。虽然它添加了垃圾收集,可扩展类型和(在Oberon-2中)类型绑定程序,但它也简化了爱因斯坦和Antoine de Saint-Exupéry的原理:
尽可能简单,但不简单。(艾尔伯特爱因斯坦)
如果不再需要添加任何东西,那么最终就会获得完美,但是当不再需要带走任何东西时。(Antoine de Saint-Exupéry,由LewisGalantière翻译。)
Ѵishap
可能是栖息在亚美尼亚高地的龙。我们决定将项目命名为“Vishap”,因为编译器和龙之间的关系具有古老的传统。
此外,Vishaps以故事,小说而闻名。本页将一些技术称为“计算机科幻小说”。其中来到奥伯伦。这带来了另一种意义,Oberon就像外星人,鬼魂。和Vishaps。
参考
Oberon
Oberon2
Oberon 07
链接
- Niklaus Wirth在苏黎世联邦理工学院的个人页面
- 苏黎世联邦理工学院的Wirth出版物页面
- Joseph Templ在github上的面前
- 软件Templ OG
- Oberon:超越Pascal和Modula的步伐
历史
见历史。
========================== End