可执行代码(Executable Code)目标代码(object code)

小结:

1、可执行代码(Executable Code)是指将目标代码(object code)连接后形成的代码,简单来说是机器能够直接执行的代码。

 https://baike.baidu.com/item/可执行代码

目标代码(object code)指计算机科学中编译器或汇编器处理源代码后所生成的代码,它一般由机器代码或接近于机器语言的代码组成。 [1]  在计算机科学中,可执行代码(Executable Code)是指将目标代码连接后形成的代码,简单来说是机器能够直接执行的代码。可执行代码一般是可执行文件的一部分。
 
中文名
可执行代码
外文名
Executable Code
学    科
计算机科学
定    义
目标代码连接后形成的代码
有关术语
可执行文件
应    用
软件程序、内存泄露检查

简介

可执行代码(Executable Code)是指将目标代码连接后形成的代码,简单来说是机器能够直接执行的代码,可执行代码当然也是二进制的。源代码(也称源程序)是指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令。 [2]  在计算机程序设计中,一般建议将源代码与可执行代码分离存储。问题在于不同平台下编译出来的可执行代码是不同的,例如一个程序复制到不同的电脑上,即便代码不做任何修改,VI也会被修改,因为VI中包含的可执行代码变了。理论上,可执行代码与源代码分离开来,可以提高程序的加载速度:程序可以各取所需,只加载源代码或只加载可执行代码。

可执行文件与可执行程序


可执行文件 (executable file) 指的是可以由操作系统进行加载执行的文件。在不同的操作系统环境下,可执行程序的呈现方式不一样。通常可执行文件内,含有以二进制编码的微处理器指令,也因此可执行文件有时称为二进制档。这些二进制微处理器指令的编码,于各种微处理器有所不同,故此可执行文件多数要分开不同的微处理版本。一个电脑文件是否为可执行文件,主要由操作系统的传统决定。例如根据特定的命名方法(如扩展名为exe)或文件的元数据信息(例如UNIX系统设置“可运行”权限)。在现代的各种电脑架构,可执行文件除了有程序的信息之外,还有其他信息,例如让程序运行的操作系统设置值数据、调试数据等等。
可执行程序(executable program,EXE File)是指一种可在操作系统存储空间中浮动定位的可执行程序。在MS-DOS和MS-WINDOWS下,此类文件扩展名为·exe。
WINDOWS操作系统中的二进制可执行文件,分两种:
一种后辍名为·com,另一种是·exe 。
DOS规定,有重名的exe和com,运行时优先执行com文件。如果只有A.exe,就可以直接输入A,而不用输入全名。但如果有A.com和A.exe,输入A则优先执行A.com,要运行A.exe只能输入A.exe而不能输入A。一般用于DOS,在WINDOWS系统中的执行文件一般都是.exe文件。在 MS-DOS 中,用以标识可执行文件的文件扩展名。用户在提示行输入不带 .exe 扩展名的文件名后按 Enter 键或者点双击就能运行可执行程序。

ECMA的可执行代码类型


一共有三种 ECMA 脚本可执行代码:
全局代码是指被作为 ECMAScript Program 处理的源代码文本。一个特定 Program 的全局代码不包括作为 FunctionBody 被解析的源代码文本。
Eval 代码是指提供给 eval 内置函数的源代码文本。更精确地说,如果传递给 eval 内置函数的参数为一个字符串,该字符串将被作为 ECMA 脚本 Program 进行处理。在特定的一次对 eval 的调用过程中,eval 代码作为该 Program 的全局代码部分。
函数代码是指作为 FunctionBody 被解析的源代码文本。一个 FunctionBody 的函数代码不包括作为其嵌套函数的 FunctionBody 被解析的源代码文本。函数代码同时还特指以构造器方式调用 Function 内置对象时所提供的源代码文本。更精确地说,调用 Function 构造器时传递的最后一个参数将被转换为字符串并作为 FunctionBody 使用。如果调用 Function 构造器时,传递了一个以上的参数,除最后一个参数以外的其他参数都将转换为字符串,并以逗号作为分隔符连接在一起成为一个字符串,该字符串被解析为 FormalParameterList 供由最后一个参数定义的 FunctionBody 使用。初始化 Function 对象时所提供的函数代码,并不包括作为其嵌套函数的 FunctionBody 被解析的源代码文本。
严格模式下的代码
一个 ECMA 脚本程序的语法单元可以使用非严格或严格模式下的语法及语义进行处理。当使用严格模式进行处理时,以上三种代码将被称为严格全局代码、严格 eval 代码和严格函数代码。当符合以下条件时,代码将被解析为严格模式下的代码:
当全局代码以指令序言开始,且该指令序言包含一个使用严格模式指令时,即为严格全局代码。
当 Eval 代码以指令序言开始,且该指令序言包含一个使用严格模式指令时;或者在严格模式下的代码中通过直接调用 eval 函数时,即为严格 eval 代码。
当一个 FunctionDeclaration、FunctionExpression 或 PropertyAssignment 访问器处在一段严格模式下的代码中,或其函数代码以指令序言开始,且该指令序言包含一个使用严格模式的指令序言时,该函数代码即为严格函数代码。
当调用内置的 Function 构造器时,如果最后一个参数所表达的字符串在作为 FunctionBody 处理时以指令序言开始,且该指令序言包含一个使用严格模式的指令,则该函数代码即为严格函数代码。
 
 
 
原文地址:https://www.cnblogs.com/rsapaper/p/10482542.html