目前我们正在开发软件现代化项目,我们无法为PL1等过时语言的程序中的每个语句编写语法。
答案 0 :(得分:4)
如果没有花费大量资源,您将无法将PL / 1编译器二进制文件反向工程化为语法。
获取PL / 1手册(IBM提供)并使用它来定义语法。
如果你做设法开始获得语法,你就会发现PL / 1非常难以解析:它没有关键词。每个"关键字"在语言中也可以用作变量。这是合法的:
IF BEGIN>END*PROCEDURE[PUT] THEN GOTO CALL;
传统的解析器生成器无法处理此问题。
您将面临的另一个问题是PL / 1的预处理器。人们很少在PL / 1源代码中遇到这些指令,但几乎总是在一个大型软件系统中(通常经历现代化的那种)。
(在这里,完成了PL / 1完整语法和前端。查看我的简历了解更多详情。)