Windows下是否存在支持XYplane模块的Oberon-2编译器?
Oberon-2 XYplane模块不兼容问题解决方案
XYplane是Wirth为ETH原生Oberon系统设计的专属图形模块,Oxford Oberon-2作为面向通用操作系统的移植版本,默认未内置该模块属于预期情况,你可以通过以下三种方案解决示例运行问题:
方案1:直接替换为Oxford Oberon-2原生图形接口
Oxford Oberon-2内置的O2Graphics模块覆盖了XYplane的全部基础绘图能力,你可以手动映射原书示例的调用关系,常用对应逻辑如下:XYplane.DrawLine对应O2Graphics.DrawLineXYplane.SetColor对应O2Graphics.SetPenColorXYplane.FillRect对应O2Graphics.FillRectangle
两个模块的坐标原点均为左上角,仅部分参数的整数类型需要做少量转换,简单绘图示例调整后即可直接运行。
方案2:自定义兼容层XYplane模块
不想修改原书示例代码的情况下,你可以自行编写简化版XYplane.Mod作为适配层,内部调用Oxford Oberon-2的原生图形接口,导出原书用到的所有方法即可。基础框架参考:MODULE XYplane; IMPORT O2Graphics, O2Windows; PROCEDURE OpenWindow(title: ARRAY OF CHAR; width, height: INTEGER); BEGIN O2Windows.Create(title, width, height); END OpenWindow; PROCEDURE DrawLine(x1, y1, x2, y2: INTEGER); BEGIN O2Graphics.DrawLine(x1, y1, x2, y2); END DrawLine; (* 可根据你用到的XYplane接口补充对应实现 *) END XYplane.将该模块和示例代码放在同一编译目录下,不需要修改原示例就能直接编译运行。
方案3:使用ETH原生Oberon仿真环境
如果你需要100%还原原书的全部运行环境,可以安装ETH官方推出的Oberon System仿真包,所有Wirth著作中提到的原生模块均为默认预装状态,无需额外适配即可运行所有示例。
内容的提问来源于stack exchange,提问作者GDI512
相关产品推荐
相关产品推荐

