编译原理 |
您所在的位置:网站首页 › 源程序的例子 › 编译原理 |
代码及结果:task1
任务二博客:编译原理 | 实验任务二:扩展Read和Write语句
1 找到PASCAL编译系统
下载安装free pascal,设置环境变量,然后用vscode编辑。 参考资料:在windows命令行下编译运行Pascal程序 2 在PASCAL系统上运行PL0编译程序,需要对PL0编译程序作一些修改、调试1.改格式(缩进、注释) 2.符号修改 ~ -> not//~这个符号打不出来,反正就是非的意思 //procedure和object在pascal中是关键字,所以分别使用proceduree和objectt替代 object -> objectt; procedure -> proceduree; cc—1 -> cc-1; ↑ -> ^; ≤ -> ; 3. 注释掉不必要的(其实是报错的)语句,如
4.标号99原来是用于退出程序的,由于不支持跨过程的跳转,所以直接退出 5.现在暂时没有错误了 在输入文件中存放PL0源程序 1.增加变量fin和fout,以命令行形式读取和写入文件 2.exit时关闭文件 //getch begin writeln('PROGRAM INCOMPLETE'); close(fin); close(fout); exit; //goto 99 end; //gen begin write('PROGRAM TOO LONG'); close(fin); close(fout); exit //goto 99 end;3.将所有input改成fin,有read的地方都改成从fin文件读入,有write的地方都改成写到fout文件: //getch if eof(fin) then { 如果已到文件尾} ... while not eoln(fin) do { 如果不是行末} begin ll := ll + 1; { 将行缓冲区的长度+1} read(fin, ch); { 从源文件中读取一个字符到ch中} write(fout, ch);{ 输出ch到输出文件中} line[ll] := ch { 把这个字符放到当前行末尾} end; writeln(fout); { 换行} readln(fin);{ 从源文件下一行开始读取} ll := ll + 1; { 将行缓冲区的长度+1} line[ll] := ' ' { pro |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |