从标准输入(stdin)读取数据

王林
发布: 2024-08-07 08:30:52
原创
300 人浏览过

Lendo dados da entrada padrão (stdin)

对于那些不关注POJ(JVM上的Pascal)的人来说,它是一个编译器,将子集从Pascal转换为JASM(Java Assembly),以便我们可以使用JVM作为执行环境

在上一篇文章中,讨论了上下文(来自parser)和嵌套句子。在本出版物中,我们将讨论使用Pascalread/readln函数从标准输入 (stdin) 读取数据所需的更改。

当我们为 JVM 进行编译时,有必要详细说明这个令人难以置信的虚拟机的各个点的功能。因此,我多次详细介绍 JVM 的内部工作原理以及它的一些指令(操作码)。

stdin(标准输入)读取数据

标准输入(stdin)是程序从中读取输入数据的流。到目前为止,我们仅支持stdout(标准输出)。

在这个commit中,实现了一个Java程序来了解JVM如何处理stdin

雷雷

当我们反汇编class文件时,我们得到下面的程序集。不相关的片段被省略,并且产生汇编的原始片段(Java)被插入了“;;”:

雷雷

通过此示例,可以确定要从stdin读取数据,必须使用指令System.console().readLine()(第 11 行和第 16 行)。由于readLine()返回一个字符串,因此要读取数字,需要使用函数Integer.parseInt进行转换(第 17 行)。

也就是说,来自下面的 Pascal 程序:

雷雷

POJ 已调整生成以下 JASM:

雷雷

此提交实现了对 POJ 解析器的必要更改。

这是完整的 PR。

下一步

在下一篇文章中,我们将完成该项目的目标之一:递归计算阶乘。

完整的项目代码

包含项目完整代码和文档的存储库在这里。

以上是从标准输入(stdin)读取数据的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!