汇编程序与编译程序区别 assembler compiler

时间:2021-10-25 20:45:20
    高级编程语言(high level programming language):如Java、C#等
    低级编程语言(low lever programming language):如汇编语言
    汇编程序(assembler)
    编译程序(compiler)
    机器语言(machine language 由0和1组成的比特流)
    汇编程序是把汇编指令转换为可执行的机器语言。
    编译程序把高级编程语言(如Java、C#)编写的程序转换为可执行的机器语言。其具体过程是先把高级语言编写的程序转换为汇编指令(assembly instruction),然后再转换为可执行的机器语言。
    一行高级语言编写的指令,经过编译程序转换后,会生成多行相应的汇编指令。
    没有经过专业训练的人,很难看懂汇编指令。对比而言,当前多数大学生都可以多少看懂一些高级语言(如VB、Java、C#等)编写的源代码。
    assembly这个词,在翻译为计算机相关的汉语时,可以分别翻译为“汇编,编译;程序集”,注意根据上下文进行理解。如果是偏重处理过程,则理解为“汇编”;如果偏重引用的程序,则理解为“程序集”。比如以下两条代码是ASP.NET中的Assembly指令:
    <%@ Assembly Name="MyAssembly" %>
    <%@ Assembly Src="SomeSource.cs" %>
    对于Name属性,默认的文件名为.dll,所以在第一行语句中只写MyAssembly,而不必写MyAssembly.dll;但第二行语句中,涉及到源代码时,使用Src属性必须写明扩展名,以明晰源代码所使用的语言。因此综合看来,这里assembly与汇编关系不大(因为第二行中C#代码,说明已与汇编无关),所以翻译为“程序集”更合适。
    下面看一段英语说明:
    The Assembly directive links an assembly to the current application during compilation.
    (Assemblies are, typically, .dll or .exe file.)