meo学习笔记1:编译是什么——程序的执行过程概述
程序执行过程概概述
1.前言
最近准备好好再学习下C++,文中一来就说“编写好程序后,我们就需要编写它…”,以前学过编译原理,但是久了就忘记了,看来好记性不如烂笔头,脑子记不如动手记,所以,我下面将大概整理下书上的内容,从概念上理解下程序执行的过程!
参考书籍:《编译原理基础》-刘坚
2.直蹦主题
2.1概述
程序(我指的是高级通用设计语言,如C、c++、java)被编写后,由于是我们人类识别的语言,所以自然需要一个转换为机器识别语言的过程,即由高级语言到更低层的计算机语言这个过程我们就可以理解为编译过程,这个过程的结果就是将高级语言程序(源程序)变成目标程序的过程(当然有可能还会有链接过程(将不同库、文件啥的组织起来供执行),此次出发点不同,不细说啦),然后我们在再执行目标程序以达到我们的编程目的,过程大概如下:
2.2详细
按刘坚老师书上介绍的,我们将语言分为三个层次,由上到下为高级语言、汇编语言、机器语言,如下图所示:
可与认为高级语言之间的转换就是预处理过程,高级到低级的过程就是编译过程,图中可见可由高级到汇编或是直接到机器语言(汇编和机器语言是根据不同的机器而定制的,与计算机本身相关,故他们有所不同),编译器就是在编译过程使用的,实际上是一个程序,它的存在就是充当一个翻译官,将人懂的翻译成机器懂的,到这里我的问题已经解决了(编译过程干嘛的?),我目前学习的重点不是了解编译器的实现,如有需要再深入吧!
3.最后
编译器的实现,可以继续参考刘老师的书,讲了原理,但是具体咋个实现还得加油哦!另外,我看了下这个编译原理基础学习,对编译过程有个宏观的理解呀!感谢
一个程序从开始到结束的过程(编译链接等)
、
meo学习笔记1:编译是什么——程序的执行过程概述相关推荐
- mybatis学习笔记(1)-对原生jdbc程序中的问题总结
2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(1)-对原生jdbc程序中的问题总结 标签:mybatis [TOC] 本文总结jdbc编程的一般步骤 ...
- C++学习笔记(B站黑马程序员C++教程)
C++学习笔记(B站黑马程序员C++教程) 简介 视频链接https://www.bilibili.com/video/BV1kV411U7Ub?spm_id_from=333.999.0.0 建议用 ...
- Makefile学习笔记06|编译动态链接库
Makefile学习笔记06|编译动态链接库 希望看到这篇文章的朋友能在评论区留下宝贵的建议来让我们共同成长,谢谢. 这里是目录 静态链接与动态链接 链接分为两种:静态链接.动态链接. 静 ...
- C#.NET学习笔记2---C#.第一个C#程序
C#.NET学习笔记2---C#.第一个C#程序 技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:__________以前的网站现在不弄了,抱歉 6.第一个 ...
- MyBatis学习笔记2 ——第一个MyBatis程序
MyBatis学习笔记2 --第一个MyBatis程序 参考教程B站狂神https://www.bilibili.com/video/BV1NE411Q7Nx 环境搭建 建立一个mybatis数据库用 ...
- Spark学习笔记1——第一个Spark程序:单词数统计
Spark学习笔记1--第一个Spark程序:单词数统计 笔记摘抄自 [美] Holden Karau 等著的<Spark快速大数据分析> 添加依赖 通过 Maven 添加 Spark-c ...
- Makefile学习笔记07|编译静态库并通过ifeq语句
Makefile学习笔记07|编译静态库并通过ifeq语句 希望看到这篇文章的朋友能在评论区留下宝贵的建议来让我们共同成长,谢谢. 这里是目录 本篇与上一篇有较多联系,有兴趣的可以先看上一 ...
- java中预编译是啥意思_JAVA学习笔记预编译
JAVA学习笔记预编译 (2011-07-30 02:36:17) 标签: 杂谈 第顺次运行jsp时jsp将被改换成servlet(第顺次工夫较长,而尔后就会快许多) 搭配好的利用过程能够穿越设置js ...
- python语言采用编译执行方式_Python程序的执行过程 解释型语言和编译型语言
我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在.如果是解释型语言,那么生成的*.pyc文件是什么呢?c应 ...
最新文章
- kvm cpu的亲和性绑定配置
- 时间就是金钱!Windows 上必装的 10 款高效软件
- 贪心入门——出租车费
- Python开发【Part 4】:数据类型操作
- Hadoop Yarn生产环境核心配置参数
- CAE+VBR如何提升用户体验?
- “拒绝访问”协助方案
- [蓝点zigBee] CC2530 实用教程总览
- 如何在Windows上的Git Bash中退出'git diff'的结果? [重复]
- windows下利用批处理命令生成maven项目(java、javaWeb)
- python tkinter
- Vue的父子组件通信(转载)
- H3C DHCP中继和RIP配置实验
- 淘宝客商家如何加入内容商品库?
- Pytorch框架中余弦相似度(Cosine similarity)、欧氏距离(Euclidean distance)源码解析
- 窥一斑而知全豹,几分钟带你读懂Java字节码,再也不怕了
- 这是我网店的链接欢迎来看看
- 解决:为什么谷歌浏览器启动主页是360导航,自己明明设置的是百度?
- micropython中文文档-microPython高级应用
- 默认事件和阻止默认事件