C语言之“先有的鸡还是先有的蛋”浅谈
之前在一个十分著名的网站上看到:“Visual Studio 2010的界面是使用用WPF开发的”;后来又看到“C语言的编译器通常是用C语言或是C++语言开发”,好迷惑啊,怎么感觉好像有有自己生自己,鸡生蛋、蛋生鸡,鸡鸡蛋蛋无穷无尽的意思啊。
WPF本身就是Visual Studio 中提供的一种开发项目模板,怎么Visual Studio 的界面是用它开发的?是现有的Visual Studio 还是先有的WPF?
C语言编译器就是用来编译C语言的,如果C语言编译器也是C开发的,那么是先有C还是先有C编译器?没有C哪来的C编译器?没有C编译器又怎么去编译C?好绕人啊!
仔细想了想,理了理思路,总算是想到了一个能让自己满意的解答。其实”C语言编译器是用C语言开发“这句话的正确理解应该是这样的一个过程:
1. 首先使用汇编语言编写出一个C语言编译器 I.exe(也就是早起的C编译器);
2. 有了 I.exe 之后,就可以用 I.exe 来编写C代码,得到一个程序 II.exe
3. II.exe的功能就可以是读取文本(即C语言源代码),根据文本的生成相应的汇编代码。
4. 这里的 II.exe 其实就是”用C语言开发的C语言编译器“
其实鸡也一样,首先是没有鸡的,后来因为两个不知名的物种,杂交生下了鸡,就像驴和马生成了骡一样,区别就是骡是不可生育的,鸡是可以下蛋的,于是,鸡就开始下蛋,蛋就开始孵化成鸡,于是就有了现在这么多鸡和鸡蛋。
C语言之“先有的鸡还是先有的蛋”浅谈相关推荐
- c语言教学中案例如何选取,创新教学方法实例 [浅谈C语言实例教学方法]
摘要:分析C语言程序设计课程的特点:探讨如何在C语言程序设计实验教学中采用科学的实验教学手段,培养学生的学习兴趣,提高学生用C语言解决实际问题的综合能力:对C语言程序设计实验教学提出一些可行的探索方法 ...
- c语言程序与设计教学设计,浅谈C语言程序设计课程的教学设计
C语言程序设计课程是一门计算机专业程序设计语言类的基础课程,如何将枯燥复杂的语法.单调抽象的函数让学生们有兴趣学习.研究.文章通过在C语言程序设计这门课教学的设计,浅谈了自己的见解和方法. 大多数计算 ...
- 利用Python语言编程,解决鸡兔同笼问题,已知同一个笼子里鸡和兔总共有h只,鸡和兔的脚数总共有f只,其中h和f需要用户输入,求鸡和兔各有多少只。
利用Python语言编程,解决鸡兔同笼问题,已知同一个笼子里鸡和兔总共有h只,鸡和兔的脚数总共有f只,其中h和f需要用户输入,求鸡和兔各有多少只. 提示:利用循环,采用枚举法. 要求:当输入的h和f没 ...
- 先有鸡还是先有蛋,程序员怎么看
先有鸡还是先有蛋,这个问题你是否也想过?这种具有互相依赖关系的情况,其实相对于经常接触电子产品和信息系统的程序员来说,也很常见.你有没有想过,这种现象就好比现代CPU的设计,需要在PC电脑上设计,而P ...
- 蛋鸡问题,先有鸡还是先有蛋。顺便回答第一个编译器是怎么来的。(思考使人伟大)
生活中存在着一些自举的例子,这些例子常被拿来做为思维狡辩的工具,它们确实也起到了让普通人思维混乱的作用. 问题如下: 1. 蛋鸡问题,鸡可以生蛋,蛋可以孵出鸡,那么到底先有鸡还是先有蛋? 2. 人 ...
- 用C#写C#编译器,先有鸡还是先有蛋
前段时间翻译的一篇文章 微软是如何重写C#编译器并使它开源的,文章讲了微软用C#重写C#编译器的坎坷路,引发了一些童鞋的思考:用C#编写C#编译器(Roslyn),那么C#编译器本身是由谁来编译的?C ...
- 用 C# 编写 C# 编译器,先有鸡还是先有蛋?
前段时间翻译了一篇文章 微软是如何重写 C# 编译器并使它开源的,文章讲了微软用 C# 重写 C# 编译器的坎坷路,引发了一些童鞋的思考:用 C# 编写 C# 编译器(Roslyn),那么 C# 编译 ...
- python中内置的四种数值类型为_浅谈python语言四种数值类型
Python语言支持四种不同的数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数),本文章向码农介绍python 四种数值类型,需要的朋友可以参考一下.希望对 ...
- 菌群与疾病的关系探讨之一:先有鸡还是先有蛋?
本文转载自"态昌基因",己获授权. 掐指一算,小昌也是有十几年菌群研究项目经验的老司机了,本以为做的多会的多,结果却是做得越多疑问越多,所以小昌对菌群研究的评价就是"这里 ...
- 『软件工程13』浅谈面向对象方法,统一建模语言UML
浅谈面向对象方法UML 一.UML的含义 二.UML的主要内容 1.UML的概念模型 2.UML概念模型图例 三.UML的基本构造块 1.UML中的事物 (1)UML中的四种事物 (2)UML中各种事 ...
最新文章
- 文字转语音引擎未就绪_5个文字转语音网站,其中最强堪比真人发音
- python命令行参数处理
- Eclipse 中修改android的Default debug keystore 搬家、备份后启动Android PANIC :Could not open D:\java2\android\and
- .NET简谈组件程序设计之(上下文与同步域)
- Linux 命令之 which -- 查找并显示给定命令的绝对路径(查找命令的位置/查询命令的位置/搜索命令的位置/查看命令的位置)
- 五个问答,告诉你阿里云对象存储如何助力钉钉战胜业务洪峰
- Linux各个目录的作用及内容
- 电脑画画软件_数码印花设计与电脑手绘
- kaggle比赛语言java_Kaggle调查:2018年数据科学家最常用(和最推荐)的编程语言榜单...
- vmxnet3 丢包处理
- rost反剽窃检测系统_论文为什么需要进行查重检测?
- DX12之手撸GPU Driven Pipeline
- Mysql索引灵魂拷问
- html怎么去除照片背景颜色,photoshop怎么去除图片背景色
- SAP-HR模块-常用T-CODE
- MATLAB中根据两点的经纬度求距离
- 专业专注、以客户为中心-是我们的服务理念
- 微记账软件-站立会议
- 达摩克利斯之剑:开源软件的合规风险及防控策略
- 教你如何将下载的电影刻录成VCD