导航:首页 > 源码编译 > 编译器的输入有什么用

编译器的输入有什么用

发布时间:2022-02-11 01:41:34

‘壹’ java编译器的输入输出是什么

不知道你指的是控制台输入输出,还是文件输入输出呢?控制台的输出可以直接使用System.out.println(),如果是文件输入输出就要用输入输出流来进行输入了,自己往程序中输入内容,可以用系统封装好的类,也可以自己用输入输出流构建。

‘贰’ 一个c++编译器的输入输出是什么

c语言使用scanf()函数输入,printf()函数输出
使用gets( )函数输入字符串,puts()函数输出字符串
使用getchar()函数接受单个字符,putchar()函数输出单个字符
c++使用cin输入,cout输出。

‘叁’ c语言的编译器是干什么用的

编译器的作用:将C源程序文件编译生成对应机器的机器码obj文件,再将obj文件连接生成可执行的EXE文件。
推荐你使用Dev-CPP

‘肆’ 请问在命令指示符和在编译器上直接运行,如果要输入命令行参数在输入时有什么区别

这么跟你说吧:集成开发环境其实后台也是在通过命令行和参数来调用编译器。

所以,只要你做得足够合适。那两者是完全一样的。

集成开发环境 = 自动化的代码编辑 + 自动化的命令行调用编译器 + (可能有)调试器 + 部分帮助文档

‘伍’ C语言编译器是用来做什么的

1.
C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。
2.
C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。

‘陆’ java编译器的输入和输出是什么

输入是.java文件和编译参数,输出是.class文件

‘柒’ 什么是编译器

编译器,是将便于人编写,阅读,维护的高级计算机语言翻译为计算机能识别,运行的低级机器语言的程序。编译器将源程序(Source program)作为输入,翻译产生使用目标语言(Target language)的等价程序。源程序一般为高级语言(High-level language),如Pascal,C++等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码(Machine code)。

一个现代编译器的主要工作流程如下:
源程序(source code)→预处理器(preprocessor)→编译器(compiler)→汇编程序(assembler)→目标程序(object code)→连接器(链接器,Linker)→可执行程序(executables])

工作原理
翻译是从源代码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(通常为低级语言或机器言)。然而,也存在从低级语言到高级语言的编译器,这类编译器中用来从由高级语言生成的低级语言代码重新生成高级语言代码的又被叫做反编译器。也有从一种高级语言生成另一种高级语言的编译器,或者生成一种需要进一步处理的的中间代码的编译器(又叫级联)。

典型的编译器输出是由包含入口点的名字和地址以及外部调用(到不在这个目标文件中的函数调用)的机器代码所组成的目标文件。一组目标文件,不必是同一编译器产生,但使用的编译器必需采用同样的输出格式,可以链接在一起并生成可以由用户直接执行的可执行程序。

编译器种类
编译器可以生成用来在与编译器本身所在的计算机和操作系统(平台)相同的环境下运行的目标代码,这种编译器又叫做“本地”编译器。另外,编译器也可以生成用来在其它平台上运行的目标代码,这种编译器又叫做交叉编译器。交叉编译器在生成新的硬件平台时非常有用。“源码到源码编译器”是指用一种高级语言作为输入,输出也是高级语言的编译器。例如: 自动并行化编译器经常采用一种高级语言作为输入,转换其中的代码,并用并行代码注释对它进行注释(如OpenMP)或者用语言构造进行注释(如FORTRAN的DOALL指令)。

预处理器(preprocessor)
作用是通过代入预定义等程序段将源程序补充完整。

编译器前端(frontend)
前端主要负责解析(parse)输入的源程序,由词法分析器和语法分析器协同工作。词法分析器负责把源程序中的‘单词’(Token)找出来,语法分析器把这些分散的单词按预先定义好的语法组装成有意义的表达式,语句 ,函数等等。
例如“a = b + c;”前端词法分析器看到的是“a, =, b , +, c;”,语法分析器按定义的语法,先把他们组装成表达式“b + c”,再组装成“a = b + c”的语句。
前端还负责语义(semantic checking)的检查,例如检测参与运算的变量是否是同一类型的,简单的错误处理。最终的结果常常是一个抽象的语法树(abstract syntax tree,或 AST),这样后端可以在次基础上进一步优化,处理。

编译器后端(backend)
编译器后端主要负责分析,优化中间代码(Intermediate representation)以及生成机器代码(Code Generation)。

一般说来所有的编译器分析,优化,变型都可以分成两大类: 函数内(intraproceral)还是函数之间(interproceral)进行。很明显,函数间的分析,优化更准确,但需要更长的时间来完成。

编译器分析(compiler analysis)的对象是前端生成并传递过来的中间代码,现代的优化型编译器(optimizing compiler)常常用好几种层次的中间代码来表示程序,高层的中间代码(high level IR)接近输入的源程序的格式,与输入语言相关(language dependent),包含更多的全局性的信息,和源程序的结构;中层的中间代码(middle level IR)与输入语言无关,低层的中间代码(Low level IR)与机器语言类似。 不同的分析,优化发生在最适合的那一层中间代码上。

常见的编译分析有函数调用树(call tree),控制流程图(Control flow graph),以及在此基础上的 变量定义-使用,使用-定义链(define-use/use-define or u-d/d-u chain),变量别名分析(alias analysis),指针分析(pointer analysis),数据依赖分析(data dependence analysis)等等。

上述的程序分析结果是编译器优化(compiler optimization)和程序变形(compiler transformation)的前提条件。常见的优化和变新有:函数内嵌(inlining),无用代码删除(Dead code elimination),标准化循环结构(loop normalization),循环体展开(loop unrolling),循环体合并,分裂(loop fusion,loop fission),数组填充(array padding),等等。 优化和变形的目的是减少代码的长度,提高内存(memory),缓存(cache)的使用率,减少读写磁盘,访问网络数据的频率。更高级的优化甚至可以把序列化的代码(serial code)变成并行运算,多线程的代码(parallelized,multi-threaded code)。

机器代码的生成是优化变型后的中间代码转换成机器指令的过程。现代编译器主要采用生成汇编代码(assembly code)的策略,而不直接生成二进制的目标代码(binary object code)。即使在代码生成阶段,高级编译器仍然要做很多分析,优化,变形的工作。例如如何分配寄存器(register allocatioin),如何选择合适的机器指令(instruction selection),如何合并几句代码成一句等等。

‘捌’ C++输入输出流与编译器有啥关系吗

基本上没关系,毕竟库都是一样的。只要写得程序不是很非主流,一般都会通过的,建议参考C++primer的约定,其他编译器约定尽量避免,以免混淆或出错。毕竟这东西每一个权威标准。编译器一般都是在最基本的约定上加一些东西,优化一下代码。

‘玖’ 编译器有什么用

简单讲,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器(Linker) → 可执行程序 (executables)
高级计算机语言便于人编写,阅读交流,维护。机器语言是计算机能直接解读、运行的。编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目标语言(Target language)机器代码的等价程序。源代码一般为高级语言 (High-level language), 如Pascal、C、C++、Java、汉语编程等或汇编语言,而目标则是机器语言的目标代码(Object code),有时也称作机器代码(Machine code)。
对于C#、VB等高级语言而言,此时编译器完成的功能是把源码(SourceCode)编译成通用中间语言(MSIL/CIL)的字节码(ByteCode)。最后运行的时候通过通用语言运行库的转换,编程最终可以被CPU直接计算的机器码(NativeCode)。

‘拾’ C++编译器是干什么的有什么用

编译器是把你写的c++代码编译成可执行的应用程序(例如exe)

阅读全文

与编译器的输入有什么用相关的资料

热点内容
phpecho字符串 浏览:681
中国银行app怎么关联人 浏览:753
eds是什么服务器 浏览:457
半圆命令键 浏览:443
linux文件系统实现 浏览:853
cadchange命令 浏览:325
电脑图谱源码大全 浏览:755
dos系统下命令 浏览:524
运维狗和程序员 浏览:707
哪个APP看纸牌屋 浏览:556
外卖领券app哪个最好买 浏览:313
linux中文字体包 浏览:753
git命令行建分支 浏览:848
致信服务器地址和端口要怎么找 浏览:983
android图片文件压缩 浏览:894
腾讯云使用云服务器访问外网 浏览:166
运用算法模型给数据打标签 浏览:745
云服务器没有数据盘 浏览:812
简洁php论坛 浏览:729
复制跳转微信源码 浏览:608