之前在一个十分著名的网站上看到:“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语言之“先有的鸡还是先有的蛋”浅谈相关推荐

  1. c语言教学中案例如何选取,创新教学方法实例 [浅谈C语言实例教学方法]

    摘要:分析C语言程序设计课程的特点:探讨如何在C语言程序设计实验教学中采用科学的实验教学手段,培养学生的学习兴趣,提高学生用C语言解决实际问题的综合能力:对C语言程序设计实验教学提出一些可行的探索方法 ...

  2. c语言程序与设计教学设计,浅谈C语言程序设计课程的教学设计

    C语言程序设计课程是一门计算机专业程序设计语言类的基础课程,如何将枯燥复杂的语法.单调抽象的函数让学生们有兴趣学习.研究.文章通过在C语言程序设计这门课教学的设计,浅谈了自己的见解和方法. 大多数计算 ...

  3. 利用Python语言编程,解决鸡兔同笼问题,已知同一个笼子里鸡和兔总共有h只,鸡和兔的脚数总共有f只,其中h和f需要用户输入,求鸡和兔各有多少只。

    利用Python语言编程,解决鸡兔同笼问题,已知同一个笼子里鸡和兔总共有h只,鸡和兔的脚数总共有f只,其中h和f需要用户输入,求鸡和兔各有多少只. 提示:利用循环,采用枚举法. 要求:当输入的h和f没 ...

  4. 先有鸡还是先有蛋,程序员怎么看

    先有鸡还是先有蛋,这个问题你是否也想过?这种具有互相依赖关系的情况,其实相对于经常接触电子产品和信息系统的程序员来说,也很常见.你有没有想过,这种现象就好比现代CPU的设计,需要在PC电脑上设计,而P ...

  5. 蛋鸡问题,先有鸡还是先有蛋。顺便回答第一个编译器是怎么来的。(思考使人伟大)

    生活中存在着一些自举的例子,这些例子常被拿来做为思维狡辩的工具,它们确实也起到了让普通人思维混乱的作用. 问题如下: 1.  蛋鸡问题,鸡可以生蛋,蛋可以孵出鸡,那么到底先有鸡还是先有蛋? 2.  人 ...

  6. 用C#写C#编译器,先有鸡还是先有蛋

    前段时间翻译的一篇文章 微软是如何重写C#编译器并使它开源的,文章讲了微软用C#重写C#编译器的坎坷路,引发了一些童鞋的思考:用C#编写C#编译器(Roslyn),那么C#编译器本身是由谁来编译的?C ...

  7. 用 C# 编写 C# 编译器,先有鸡还是先有蛋?

    前段时间翻译了一篇文章 微软是如何重写 C# 编译器并使它开源的,文章讲了微软用 C# 重写 C# 编译器的坎坷路,引发了一些童鞋的思考:用 C# 编写 C# 编译器(Roslyn),那么 C# 编译 ...

  8. python中内置的四种数值类型为_浅谈python语言四种数值类型

    Python语言支持四种不同的数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数),本文章向码农介绍python 四种数值类型,需要的朋友可以参考一下.希望对 ...

  9. 菌群与疾病的关系探讨之一:先有鸡还是先有蛋?

    本文转载自"态昌基因",己获授权. 掐指一算,小昌也是有十几年菌群研究项目经验的老司机了,本以为做的多会的多,结果却是做得越多疑问越多,所以小昌对菌群研究的评价就是"这里 ...

  10. 『软件工程13』浅谈面向对象方法,统一建模语言UML

    浅谈面向对象方法UML 一.UML的含义 二.UML的主要内容 1.UML的概念模型 2.UML概念模型图例 三.UML的基本构造块 1.UML中的事物 (1)UML中的四种事物 (2)UML中各种事 ...

最新文章

  1. 文字转语音引擎未就绪_5个文字转语音网站,其中最强堪比真人发音
  2. python命令行参数处理
  3. Eclipse 中修改android的Default debug keystore 搬家、备份后启动Android PANIC :Could not open D:\java2\android\and
  4. .NET简谈组件程序设计之(上下文与同步域)
  5. Linux 命令之 which -- 查找并显示给定命令的绝对路径(查找命令的位置/查询命令的位置/搜索命令的位置/查看命令的位置)
  6. 五个问答,告诉你阿里云对象存储如何助力钉钉战胜业务洪峰
  7. Linux各个目录的作用及内容
  8. 电脑画画软件_数码印花设计与电脑手绘
  9. kaggle比赛语言java_Kaggle调查:2018年数据科学家最常用(和最推荐)的编程语言榜单...
  10. vmxnet3 丢包处理
  11. rost反剽窃检测系统_论文为什么需要进行查重检测?
  12. DX12之手撸GPU Driven Pipeline
  13. Mysql索引灵魂拷问
  14. html怎么去除照片背景颜色,photoshop怎么去除图片背景色
  15. SAP-HR模块-常用T-CODE
  16. MATLAB中根据两点的经纬度求距离
  17. 专业专注、以客户为中心-是我们的服务理念
  18. 微记账软件-站立会议
  19. 达摩克利斯之剑:开源软件的合规风险及防控策略
  20. 教你如何将下载的电影刻录成VCD

热门文章

  1. 创业者需要干掉的三种思维
  2. python 条形图显示数值_如何在条形图的条形图中显示数值?
  3. 国庆假期微信大数据报告
  4. 写一个获取非行间样式的函数
  5. Mac自带ftp和Cyberduck使用
  6. python 开发微信小游戏_教你快速开发一个微信小游戏好友排行榜
  7. Spark RDD常用算子-Transformation(Python版)
  8. Python GUI工具——取色器
  9. c语言错误 cout不明确,C++ error: cout 不明确的符号
  10. Win10卸载CUDA 10.2