精华内容
下载资源
问答
  •  编译过程是将源代码(高级语言,人类容易读,容易理解),转换为机器码(cpu能理解,能高效的执行)的过程. 解释型语言:JavaScript python 等  直接解释源代码,并且直接执行,没有编译过程 编译程序是整体编译完了,再...
    • 我们先来看一下编译型语言和解释型语言的之间的区别联系

    编译型语言:C/C++

          编译过程是将源代码(高级语言,人类容易读,容易理解),转换为机器码(cpu能理解,能高效的执行)的过程.

    解释型语言:JavaScript  python 等

         直接解释源代码,并且直接执行,没有编译过程

    编译程序是整体编译完了,再一次执行,而解释程序是边解释边执行.

    • 那么java是编译型语言还是解释型语言或者是编译-解释型语言呢?

    接下来我们一起来看下java语言的执行过程

    •  首先是你写好的java源代码(根据JDK9的新特性,接下来将有三种方式将java源代码转换为机器码)
    1.      第一种方法:用javac编译器将java源代码编译成我们常见的 .class文件,然后程序在运行时,JVM将需要用到的 .class文件加载到内存中,从class文件中逐行读出一条指令,JVM中解释器解释一条指令,接着执行一条指令,如我们上面所说,边解释边执行,从而达到将.class文件翻译为机器码
    2.      第二种方式:开始依然是由javac编译为.class文件  ,但是我们平时使用的大多数oracle JDK 提供的Hotspot JVM都提供了JIT(Just In Time)编译器,也就是我们平时所说的动态编译器.   根据二八定律,消耗大部分资源的只有那一小部分代码(热点代码).在程序运行时,JIT通过预热(收集信息找出热点)将热点代码转换为机器码.JIT为方法级,会将编译过程的字节码缓存在codeCache中.在这种情况下,部分热点代码就是编译执行而不是解释执行了.
    3.      第三种方式:除了我们日常java使用模式,还有一种新的编译方式即AOT(ahead-of-time complication),直接将字节码编译成机器码,这样避免了JIT等方面的预热消耗.如oracle JDK9就引入了实验性的AOT特性,并增加了新的jaotc工具.
      aot是编译期间,静态的,直接编译成类似类库的东西

        综合我的理解,就目前的主流java版本中,个人觉得单纯说java是编译型语言或者说是解释型语言,是不准确的.比如JDK8,就是编译与解释混合的模式.即所谓的混合模式(-Xmixed)

         欢迎多多交流指正

    展开全文
  • 程序编译的过程中就是将用户的文本形式的源代码(c/c++)转化成计算机可以直接执行机器代码的过程。主要经过这么几个过程: 0、预编译,又称为预处理 , 是做些代码文本的替换工作 1、编译,由编译器将c源代码(....

    程序编译的过程中就是将用户的文本形式的源代码(c/c++)转化成计算机可以直接执行的机器代码的过程。主要经过这么几个过程:

    0、预编译,又称为预处理 , 是做些代码文本的替换工作

    1、编译,由编译器将c源代码(.cpp)转变成汇编代码(.s)

    2、汇编,由汇编器将汇编代码(.s)转变成目标代码(.o)

    3、链接,由链接器将代码在执行过程用到的其他目标代码和库文件链接成为一个可执行程序也就是目标程序。

     

    0、预编译

    处理以# 开头的指令 , 比如拷贝 #include 包含的文件代码,#define 宏定义的替换 , 条件编译等,就是为编译做的预备工作的阶段。

    主要处理#开始的预编译指令,预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中的任何位置。

    C 编译系统在对程序进行通常的编译之前,首先进行预处理。 
    c 提供的预处理功能主要有以下三种:

    1 )宏定义  
    2 )文件包含  
    3 )条件编译 
    何时需要预编译:

    总是使用不经常改动的大型代码体。 
    程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个“预编译头”

    1、编译

     

    编译的过程就是将源代码文件以字符流的形式进行处理,进行词法和语法的分析,然后通过汇编器将源代码指令转变成汇编指令,编译的过程包括两个大部分:预处理 = 预编译

     

    而编译预处理主要对文件中的四种情况处理:宏定义、#include文件包含、条件编译、特殊符号

     

    特殊符号是指:例如在源程序中出现的LINE标识将被解释为当前行号(十进制数),FILE则被解释为当前被编译的C源程序的名称。预编译程序对于在源程序中出现的这些串将用合适的值进行替换。

    2、汇编

     

    汇编过程实际上指把汇编语言代码翻译成目标机器指令的过程。对于被翻译系统处理的每一个C语言源程序,都将最终经过这一处理而得到相应的目标文件。目标文件中所存放的也就是与源程序等效的目标的机器语言代码。

     

    目标文件由段组成。通常一个目标文件中至少有两个段:

     

    1) 代码段:该段中所包含的主要是程序的指令。该段一般是可读和可执行的,但一般却不可写。

     

    2) 数据段:主要存放程序中要用到的各种全局变量或静态的数据。一般数据段都是可读,可写,可执行的。

     

    UNIX环境下主要有三种类型的目标文件:

     

    1) 可重定位文件

     

    其中包含有适合于其它目标文件链接来创建一个可执行的或者共享的目标文件的代码和数据。

     

    2) 共享的目标文件

     

    这种文件存放了适合于在两种上下文里链接的代码和数据。

     

    第一种是链接程序可把它与其它可重定位文件及共享的目标文件一起处理来创建另一个目标文件;

     

    第二种是动态链接程序将它与另一个可执行文件及其它的共享目标文件结合到一起,创建一个进程映象。

     

    3) 可执行文件

     

    它包含了一个可以被操作系统创建一个进程来执行之的文件。

     

    汇编程序生成的实际上是第一种类型的目标文件。对于后两种还需要其他的一些处理方能得到,这个就是链接程序的工作了。

     

     

    3、链接

     

    由汇编程序生成的目标文件并不能立即就被执行,其中可能还有许多没有解决的问题。

     

    例如,某个源文件中的函数可能引用了另一个源文件中定义的某个符号(如变量或者函数调用等);在程序中可能调用了某个库文件中的函数,等等。所有的这些问题,都需要经链接程序的处理方能得以解决。

     

    链接程序的主要工作就是将有关的目标文件彼此相连接,也即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的这些目标文件成为一个能够被操作系统装入执行的统一整体。

     

    根据开发人员指定的同库函数的链接方式的不同,链接处理可分为两种:

     

    静态链接

     

    在这种链接方式下,函数的代码将从其所在的静态链接库中被拷贝到最终的可执行程序中。这样该程序在被执行时这些代码将被装入到该进程的虚拟地址空间中。静态链接库实际上是一个目标文件的集合,其中的每个文件含有库中的一个或者一组相关函数的代码。

     

    动态链接

     

    在此种方式下,函数的代码被放到称作是动态链接库或共享对象的某个目标文件中。链接程序此时所作的只是在最终的可执行程序中记录下共享对象的名字以及其它少量的登记信息。在此可执行文件被执行时,动态链接库的全部内容将被映射到运行时相应进程的虚地址空间。动态链接程序将根据可执行程序中记录的信息找到相应的函数代码。

     

    对于可执行文件中的函数调用,可分别采用动态链接或静态链接的方法。使用动态链接能够使最终的可执行文件比较短小,并且当共享对象被多个进程使用时能节约一些内存,因为在内存中只需要保存一份此共享对象的代码。但并不是使用动态链接就一定比使用静态链接要优越。在某些情况下动态链接可能带来一些性能上损害。

     

     

    GCC编译器的几个组成部分

     

    预处理(cpp)、编译器(ccl)、汇编器(as)、链接器(ld)

     

     

    补充:

     

    1) 预编译

     

    将.c 文件转化成.i文件 使用的gcc命令是:gcc–E 对应于预处理命令cpp

     

    2) 编译

     

    将.c/.h文件转换成.s文件 使用的gcc命令是:gcc–S 对应于编译命令 cc –S

     

    3) 汇编

     

    将.s 文件转化成.o文件 使用的gcc 命令是:gcc–c 对应于汇编命令是 as

     

    4) 链接

     

    将.o文件转化成可执行程序 使用的gcc命令是: gcc 对应于链接命令是 ld

     

    总结起来编译过程就上面的四个过程:预编译处理(.c) -->编译、优化程序(.s、.asm)-->汇编程序(.obj、.o、.a、.ko)--> 链接程序(.exe、.elf、.axf等)。

     

    补充2:

     

    解释型

     

    解释则不同,解释型语言编写的程序不需要编译。解释型语言在运行的时候才翻译,比如VB语言,在执行的时候,专门有一个解释器能够将VB语言翻译成机器语言,每个语句都是执行的时候才翻译。这样解释型语言每执行一次就要翻译一次,效率比较低

    展开全文
  • 机器学习实战》学习笔记(一):机器学习基础

    万次阅读 多人点赞 2019-08-19 17:01:32
    机器学习】《机器学习实战》读书笔记及代码 总目录 https://blog.csdn.net/TeFuirnever/article/details/99701256 ————————————————————————————————————————————...

    欢迎关注WX公众号:【程序员管小亮】

    【机器学习】《机器学习实战》读书笔记及代码 总目录

    GitHub代码地址:

    ——————————————————————————————————————————————————————

    本章内容

    • 机器学习的简单概述
    • 机器学习的主要任务
    • 学习机器学习的原因
    • Python语言的优势

    1、何谓机器学习

    什么是机器学习?书中举了一个很有意思的例子,我们来听一下,就当开胃菜了。

    最近我和一对夫妇共进晚餐,他们问我从事什么职业,我回应道:“机器学习。”妻子回头问丈夫:“亲爱的,什么是机器学习?”她的丈夫答道:“T-800型终结者。”在《终结者》系列电影中,T-800是人工智能技术的反面样板工程。
    在这里插入图片描述

    哈哈,承包了我一天的笑点,极其学习的概念到底是什么,这个我们在很多博客中都又提到过。

    如果你还是不清楚的话,实在是很过分了 😐,在深度学习大火的如今,机器学习也正是出现在人们视野中,现今,机器学习已应用于多个领域,远超出大多数人的想象,比如NLP,再比如推荐系统。
    在这里插入图片描述

    机器学习在日常生活中的应用,从左上角按照顺时针方向依次使用到的机器学习技术分别为:人脸识别、手写数字识别、垃圾邮件过滤和亚马逊公司的产品推荐。

    在本书中,给出的定义是:【简单地说,机器学习就是把无序的数据转换成有用的信息。】

    1. 传感器和海量数据

    虽然已从互联网上获取了大量的人为数据,但最近却涌现了更多的非人为数据。传感器技术并不时髦,已经发展了好多年的传统行业,但是如何将它们接入互联网这确实是新的挑战。地震预测是一个很好的例子,传感器手机了海量的数据,但是如何从这些数据中抽取出有价值的信息是一个非常值得研究的课题。

    1. 机器学习非常重要

    在过去的半个世纪里,发达国家的多数工作岗位都已从体力劳动转化为脑力劳动。过去的工作基本上都有明确的定义,类似于把物品从A处搬到B处,或者在这里打个洞,但是现在这类工作都在逐步消失。现今的情况具有很大的二义性,类似于“最大化利润”,“最小化风险”、“找到最好的市场策略”……诸如此类的任务要求都已成为常态。虽然可从互联网上获取到海量数据,但这并没有简化知识工人的工作难度。针对具体任务搞懂所有相关数据的意义所在,这正成为基本的技能要求。

    2、关键术语

    通过构建下面的鸟类分类系统,来对机器学习领域的常用术语进行一个总结。
    在这里插入图片描述
    机器学习的主要任务就是 分类。如何判断飞入进食器的鸟是不是象牙喙啄木鸟呢?(任何发现活的象牙喙啄木鸟的人都可以得到5万美元的奖励。)这个任务就是 分类,有很多机器学习算法非常善于 分类。本例中的类别就是鸟的物种,更具体地说,就是区分是否为象牙喙啄木鸟。

    我们决定使用某个机器学习算法进行 分类,首先需要做的是算法训练,即学习如何 分类。通常我们为算法输入大量已分类数据作为算法的 训练集训练集 是用于训练机器学习算法的数据样本集合,表1-1是包含六个训练样本的训练集,每个训练样本有4种 特征(体重、翼展、脚蹼和后背颜色)、一个 目标变量(种属),目标变量 是机器学习算法的预测结果,在 分类 算法中目标变量的类型通常是标称型的,而在 回归 算法中通常是连续型的。训练样本集必须确定知道 目标变量 的值,以便机器学习算法可以发现 特征目标变量 之间的关系。正如前文所述,这里的目标变量 是种属,也可以简化为标称型的数值。我们通常将分类问题中的目标变量称为 类别,并假定分类问题只存在有限个数的 类别

    为了测试机器学习算法的效果,通常使用两套独立的样本集:训练数据测试数据。当机器学习程序开始运行时,使用 训练样本集 作为算法的输入,训练完成之后输入 测试样本。输入 测试样本 时并不提供 测试样本目标变量,由程序决定样本属于哪个类别。比较 测试样本 预测的 目标变量 值与 实际样本类别 之间的差别,就可以得出算法的实际精确度。

    假定这个鸟类分类程序,经过测试满足精确度要求,是否我们就可以看到机器已经学会了如何区分不同的鸟类了呢?这部分工作称之为 知识表示,某些算法可以产生很容易理解的知识表示,而某些算法的知识表示也许只能为计算机所理解。知识表示 可以采用规则集的形式,也可以采用概率分布的形式,甚至可以是训练样本集中的一个实例。在某些场合中,人们可能并不想建立一个专家系统,而仅仅对机器学习算法获取的信息感兴趣。此时,采用何种方式 表示知识 就显得非常重要了。

    3、机器学习的主要任务

    分类问题的主要任务是将实例数据划分到合适的分类中;回归问题的主要任务是预测数值型数据。分类和回归属于监督学习,之所以称之为 监督学习,是因为这类算法必须知道预测什么,即 目标变量的分类信息,也就是label。

    监督学习 相对应的是 无监督学习,此时数据没有 类别信息,也不会给定 目标值。在 无监督学习 中,将数据集合分成由类似的对象组成的多个类的过程被称为 聚类;将寻找描述数据统计值的过程称之为 密度估计。此外,无监督学习 还可以减少数据特征的维度,以便我们可以使用二维或三维图形更加直观地展示数据信息。

    在这里插入图片描述

    4、如何选择合适的算法

    从上面的表格中可以看出,如果我们能确定算法的目的,想要算法完成何种任务,再加上确定需要分析或手机的数据是什么,就能大概确定哪一个算法更适合了。

    首先考虑使用机器学习算法的目的。

    • 如果想要预测目标变量的值,则可以选择监督学习算法
      • 如果目标变量是离散型,则可以选择分类器算法
      • 如果目标变量是连续型的数值,则需要选择回归算法
    • 如果不想预测目标变量的值,则可以选择无监督学习算法
      • 进一步分析是否需要将数据划分为离散的组。如果这是唯一的需求,则使用聚类算法;
      • 如果还需要估计数据与每个分组的相似程度,则需要使用密度估计算法。

    其次需要考虑的是数据问题。主要应该了解数据的以下特性:特征值是离散型变量还是连续型变量,特征值中是否存在缺失的值,何种原因造成缺失值,数据中是否存在异常值,某个特征发生的频率如何(是否罕见得如同海底捞针),等等。

    一般说来发现最好算法的关键环节是反复试错的迭代过程。

    5、开发机器学习应用程序的步骤

    机器学习算法开发应用程序通常遵循以下的步骤。
    (1) 收集数据
    (2) 准备输入数据
    (3) 分析输入数据
    (4) 训练算法
    (5) 测试算法
    (6) 使用算法

    6、Python 语言的优势

    选择Python作为实现机器学习算法的编程语言的原因:
    (1) Python的语法清晰;
    (2) 易于操作纯文本文件;
    (3) 使用广泛,存在大量的开发文档。

    7、NumPy 函数库基础

    机器学习算法涉及很多线性代数知识,因此在使用Python语言构造机器学习应用时,会经常使用NumPy函数库。如果不熟悉线性代数也不用着急,这里用到线性代数只是为了简化不同的数据点上执行的相同数学运算。将数据表示为矩阵形式,只需要执行简单的矩阵运算而不需要复杂的循环操作。

    8、总结

    尽管现在引起很多人的注意,但是机器学习算法其实还是一个专业的学科,很多人都是道听途说,仍然有很长的路要走。随着每天我们需要处理的数据在不断地增加,能够深入理解数据背后的真实含义,是数据驱动产业必须具备的基本技能。如果你想走这个方向,就要下定决心,走到黑,加油,共勉。

    下一章我们将介绍第一个分类算法——k-近邻算法。

    参考文章

    • 《机器学习实战》
    展开全文
  • 这篇文章将介绍基于机器学习的恶意代码检测技术,主要参考郑师兄的视频总结,包括机器学习概述与算法举例、基于机器学习方法的恶意代码检测、机器学习算法在工业界的应用。同时,我再结合自己的经验进行扩充,详细...

    这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步。前文分享了传统的恶意代码检测技术,包括恶意代码检测的对象和策略、特征值检测技术、校验和检测技术、启发式扫描技术、虚拟机检测技术和主动防御技术。这篇文章将介绍基于机器学习的恶意代码检测技术,主要参考郑师兄的视频总结,包括机器学习概述与算法举例、基于机器学习方法的恶意代码检测、机器学习算法在工业界的应用。同时,我再结合自己的经验进行扩充,详细分享了基于机器学习的恶意代码检测技术,基础性文章,希望对您有所帮助~

    作者作为网络安全的小白,分享一些自学基础教程给大家,主要是关于安全工具和实践操作的在线笔记,希望您们喜欢。同时,更希望您能与我一起操作和进步,后续将深入学习网络安全和系统安全知识并分享相关实验。总之,希望该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力,点赞、评论、私聊均可,一起加油喔~

    推荐作者之前介绍的四篇机器学习宇恶意代码检测相关的文章,如下:

    展开全文
  • 所谓编译执行就是源代码经过编译器编译处理,生成目标机器码,就是机器能直接运行的二进制代码,下次运行时无需重新编译。 不过它是针对特定CPU体系的,这些目标代码只能在特定平台执行,如果这个程序...
  • V8是如何执行JavaScript代码

    千次阅读 2020-03-31 16:42:23
    文章目录V8是如何执行JavaScript代码的主要核心流程分为两步 -- `编译` 和 `执行`1. 首先将 `JavaScript代码` 转换为 `低级中间代码` 或者 `机器能够理解的机器代码` ;2. 执行转换后的代码并输出执行结果;高级代码...
  • 这篇文章将介绍基于机器学习的恶意代码检测技术,主要参考郑师兄的视频总结,包括机器学习概述与算法举例、基于机器学习方法的恶意代码检测、机器学习算法在工业界的应用。同时,我再结合自己的经验进行扩充,详细...
  • 所谓编译执行就是源代码经过编译器编译处理,生成目标机器码,就是机器能直接运行的二进制代码,下次运行时无需重新编译。不过它是针对特定CPU体系的,这些目标代码只能在特定平台执行,如果这个程序需要在另外一种
  • 程序是怎么从代码执行

    万次阅读 多人点赞 2014-06-03 20:35:16
    所以还要被汇编器编译成机器码(二进制代码)才能被CPU所执行.CPU又是怎么接收到二进制代码运行的呢?通过内存.即操作系统执行自己的代码,先把要执行的二进制代码放到内存的某个位置中,调整好执行过程中的上下文环境,...
  • 高级编程语言需要转化成二进制机器语言才能被计算机所执行。编译型语言需要使用编译器经过编译和连接生成可执行文件,解释型语言需要使用解释器解释源代码。解释型语言更容易上手,但是运行速度更慢,必要时要使用C/...
  • 写这篇文章的目的,就是希望它可以有志于从事数据科学和机器...我也会写下对于各种机器学习算法的一些个人理解,并且提供R和Python的执行代码。读完这篇文章,读者们至少可以行动起来亲手试试写一个机器学习的程序。
  • 深入JavaScript之JS引擎如何执行JS代码

    千次阅读 多人点赞 2021-04-20 12:09:34
    js引擎在执行js代码时,也会从上到下进行 词法分析、语法分析、语义分析 等处理,并在代码解析完成后生成AST(抽象语法树),最终根据AST生成CPU可以执行机器码并执行。 除此之外,JS引擎在执行代码时还会进行其它...
  • 机器学习去除马赛克案例(代码

    万次阅读 多人点赞 2019-02-13 16:04:33
    知道步兵和骑兵的区别么,步兵是没“码”的。今天就给大家介绍一种去... 学习法,就是通过大量代码的图片放入神经网络进行训练和学习,神经网络可以学习到图片打码的一些特征,从而生成一个可以去掉码的模型。这种...
  • 在上一篇文章中,我们讨论了无论代码是用什么语言编写的,它最终都毫无例外地运行在机器代码中。那么Java语言中发生了什么,从源代码机器代码?这就是我们今天要讨论的。 如下图所示,编译器可以分为前端编译器、...
  • 机器语言、汇编语言(低级语言)、高级语言

    万次阅读 多人点赞 2019-11-10 00:00:57
    机器语言、汇编语言(低级语言)、高级语言 ...编程语言的机器级表示:机器语言、汇编语言、高级语言 ​ 首先下面一张图是C语言、汇编语言以及翻译过...它只能识别机器语言,而机器语言是用二进制代码表示的计算机能直...
  • Hello.c #include<stdio.h> int main() { printf("Hello World\0"); return 0; } ...我们在VS下只需要Ctrl+F5便能打印出Hello World, ...在源代码文件转变为可执行文件中间发生了什么 ...
  • 代码到可执行文件的过程: ...但目标文件只包含您所编写的代码转换成的机器语言,而可执行文件还包含您所使用的库例程以及启动代码。 转载自:https://www.nowcoder.com/questionTerminal/c0f591a703ed482b905
  • 机器语言(机器码)与本地代码

    千次阅读 2018-05-23 10:11:08
    本地代码: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一套与其硬件配合的指令系统,即:不同的CPU支持不同的指令...
  • Java代码如何翻译成机器语言

    千次阅读 2020-03-21 15:04:54
    编程语言分为低级语言和高级语言,一种可以直接被计算机识别并执行,一种需要被编译成低级语言。 1、低级语言 机器语言和汇编语言,直接由计算机指令编写程序。 2、高级语言 C、C++、Java、Phtyon等,用...
  • 转载自 Java代码到底是如何编译成机器指令的。 在《Java代码的编译与...但是,字节码并不是机器语言,要想让机器能够执行,还需要把字节码翻译成机器指令。这个过程是Java虚拟机做的,这个过程也叫编译。是更深层...
  • 远程代码执行(RCE)漏洞

    千次阅读 2020-01-09 17:47:30
    文章目录1. Fastjson 远程代码执行漏洞2. 简单复现3. shell 反弹 1. Fastjson 远程代码...目标机器执行以下代码,会新开一个 shell 进程,将自身的输入输出通过 tcp连接传输到攻击者服务器上,从而渗透入侵。以下...
  • 本篇文章,作者将分享两篇论文,机器学习是如何运用到恶意代码攻击中的,并谈谈自己的理解,后续深入研究尝试分享相关实验,目前还是小白一只。基础性文章,希望对初学者有帮助,大神请飘过,谢谢各位看官!
  • Kibana 任意代码执行漏洞

    千次阅读 2019-10-18 23:02:24
    点击蓝字“madMen”关注我哟这几天,有人公开了 Kibana 任意代码执行漏洞(CVE-2019-7609)的 POC。这个漏洞的主要原理是因为 Kibana ...
  • 机器学习根据文字生成图片教程(附python代码

    万次阅读 多人点赞 2018-09-05 17:41:48
    然后在代码的根目录下执行以下代码(代码中的括号内容是注释,执行前需要去掉): python3 scripts/run_model.py(预测脚本) --checkpoint sg2im-models/vg128.pt(下载好的模型所在地址) --scene_graphs ao...
  • 一个程序从源代码到可执行程序的过程

    万次阅读 多人点赞 2018-06-26 10:45:13
    一个源程序到一个可执行程序的过程:预编译、编译、汇编、链接。 其中,编译是主要部分,其中又分为六个部分:词法分析、语法分析、语义分析、中间代码生成、目标代码生成和优化。 链接中,分为静态链接和动态链接...
  • C语言程序设计第五版 谭浩强 第五版课后答案

    万次阅读 多人点赞 2019-06-16 00:27:29
    ​源程序:指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令 目标程序:为源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以.obj作扩展名 可执行程序:将所有...
  • 代码生成可执行程序过程

    千次阅读 2018-02-01 21:41:19
    问:经常敲代码代码是如何生成可执行程序的? 答:过程分为两个大的过程:翻译和链接;翻译分为编译和链接;编译又分为预编译,编译,汇编三个过程(具体过程看下图) 程序编码: gcc test.c -o test 1)...
  • loop): b,w=gradient_update(b,w,np.array(points),lr) return [b,w] #step4:执行回归 def execute(): points = np.genfromtxt("data.csv", delimiter=",") #矩阵转化 ar=np.array(points) x=ar[:,0] y=ar[:,1] plt....
  • 编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 源代码(.c...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 679,816
精华内容 271,926
关键字:

代码是怎么让机器执行的