就我已经经历过的大学课程,仿佛每一门计算机的专业课程的开头,都是在介绍计算机发展的历史,和大名鼎鼎的冯诺依曼结构。

譬如C语言,比较水的计算机导论,c++,数据结构,计算机组成原理,甚至是Linux实践。

第一次听着可能还新鲜,但久而久之就越来越无聊甚至忘记了具体的内容是什么。我也差不多,所以为了你们更好的理解,专门去看了这么一部电影,《模仿游戏》。

除了能看见超帅的男主角,令人揪心的剧情,还有值得我们这种专业人士注意的,当然就是大名鼎鼎的图灵机。

你能想象我们今天接触的大部分电子设备都是从这玩意儿演变过来的嘛!

所以你要明白,计算机的最底层,其实是非常简单的,就和上图这玩意儿一样。

当然你肯定知道,计算机是使用二进制运行的,也肯定知道那是因为世界上所有可以找到的元器件,能方便表达的就是二进制,比如拿一个电压器,高电压就是1低电压就是0,多方便。

那么自然而然,最开始那批学习计算机的勇士们,都是拿着10101010这样的二进制直接和那笨重的机器打交道,他们拿着长长的纸条,有孔的地方是1,没空的地方是0(还是正好相反来着),总之就是很难对了!

于是一群快累死的程序员动用各自的智慧,发明了汇编语言。

然而汇编语言有多难你肯定知道!

于是又一群快累死的程序员们,发明了高级语言,C语言。

故事讲到这里就结束了,但请你依然把时间线放在十几年前,C语言刚刚发明的那会儿——我们刚刚从使用纸条甚至手摇的机器语言时代,从汇编语言的艰难垦荒走过来。哪里有操作系统Windows啊!

所以,那个时候的我们使用命令行编程。

我猜你可能没办法理解。你使用win+R的组合,在输入cmd,注意不是nmd。

就会看见黑黑的命令行,也是每次你使用VC或者DEV或者任何C语言编译器时,明明那么花花绿绿的界面,一定会蹦出来的那个黑色框框,没错,基本上就是这个了。

那个时候的人们打开电脑就是这种糟心玩意儿。

想看时间怎么办,你输入个time试试。

想听音乐怎么办,对不起,没有。

于是在那种艰苦的情况下,诞生了gcc,因为即使环境再艰苦,我们程序员依然要编辑C语言!

这里我就不给你演示了,因为在Windows上用gcc还要配,我懒得配了。总之就是在这么一个黑不拉几的东西上,C语言完成了从你能看得懂的代码,到机器能看得懂的机器语言10101010。

就跟Windows的诞生一样,那黑色的命令行实在太难看也太难用了。

我们优秀的前辈们,也实在忍不了在gcc上编译运行,出错全靠肉眼输出改bug了。

于是我们有了VC,一只套着VC名称实则还是gcc的狼。

所以其实,Windows和Linux系统用的C语言编译器,都是gcc,只不过你们一般见到的,都是套了壳子的。

看完觉得还行不点个关注?

C语言编译器,写给萌新们看看。的更多相关文章

  1. 【转】自己动手写SC语言编译器

    自序 编译原理与技术的一整套理论在整个计算机科学领域占有相当重要的地位,学习它对程序设计人员有很大的帮助.我们考究历史会发现那些人人称颂的程序设 计大师都是编译领域的高手,像写出BASIC语言的BIL ...

  2. 萌新学习Python爬取B站弹幕+R语言分词demo说明

    代码地址如下:http://www.demodashi.com/demo/11578.html 一.写在前面 之前在简书首页看到了Python爬虫的介绍,于是就想着爬取B站弹幕并绘制词云,因此有了这样 ...

  3. 手把手教你提交Jar包到Maven公共仓库 | 萌新写开源02

    在上一篇文章中,我介绍了自己的SpringBoot Starter项目,可以让我们使用注解的方式轻松地获取操作日志,并推送到指定数据源. 之前,我的项目开源在Github上,大家想要用我的项目,还得把 ...

  4. 致萌新与不会用 NOI Linux 的 OIer

    全文绝大部分转载自:这篇好文章啊. 目录 1:GUIDE 2:Gedit 原文 打开 编译运行 3.Vim 3-1:这东西咋开啊 3-2:这东西咋用啊 4.编译与运行 5.调试 6.CSP竞赛中编写代 ...

  5. C语言编译器CL.exe

    下载地址CL.7z版权问题:仅供学习交流,请于24小时内删除,本人不承担版权问题… 基本使用: 1.解压缩,例如解压缩到E盘根目录下 2.打开cmd命令行界面(快捷方式win+R输入cmd回车)cd命 ...

  6. 我发起并创立了一个 C 语言编译器 开源项目 InnerC

    本文是 VMBC / D#  项目 的 系列文章, 有关 VMBC / D# ,  见 <我发起并创立了一个 VMBC 的 子项目 D#>(以下简称 <D#>)  https: ...

  7. 萌新web前端从零开始(1)——计算机入门

    前言:这是一个萌新从零开始的学习之路,与大家分享自己的看法与见解,还请指出错误与遗漏点方便改正. 1.认识计算机. 计算机语言常见的有C,PHP,Ruby,Java,C#,Basic,JS,C++等, ...

  8. 萌新笔记之堆(heap)

    前言(萌新感想): 以前用STL的queue啊stack啊priority_queue啊,一直很想懂原理,现在终于课上到了priority_queue,还有就是下周期中考,哈哈,所以写几篇blog总结 ...

  9. 大数据萌新的Python学习之路(一)

    笔记开始简介 从2018年9月份正式进入大学的时代,大数据和人工智能的崛起让我选择了计算机专业学习数据科学与大数据技术专业,接触的第一门语言就是C语言,后来因为同学推荐的原因进入了学校的人工智能研究协 ...

随机推荐

  1. HTTP 状态代码之汇总+理解

    这里有百度百科的介绍,还挺全的. 下面是在开发过程中遇到过的各种码,自己的问题自己的原因,同码不同错,贱笑贱笑. HTTP 406 Not Acceptable 这个错误的原因,是由于框架使用了`Sp ...

  2. 1.8 js基础(常用方法小结)

    1.获取随机数 var rdm=function(n,m){ return parseInt(n+Math.random()*(m-n)); } 2.位数不够补0 function toDou(inu ...

  3. 以cmd命令行方式执行php文件时,传递参数

    1. php自带的两个参数$argc, $argv: 1.1. $argv : (后面的v是variables的意思),传递进来的参数会以数组的方式保持在这个变量里 1.2. $argc : (后面的 ...

  4. jQuery 自定义方法(扩展方法)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 进入与退出anconda虚拟环境

    # 进入虚拟环境,使用 # # $ conda activate spider-venv # # 退出虚拟环境,使用 # # $ conda deactivate

  6. Silverlight & Blend动画设计系列十:Silverlight中的坐标系统(Coordinate System)与向量(Vector)运动

    如果我们习惯于数学坐标系,那么对于Silverlight中的坐标系可能会有些不习惯.因为在Silverlight中的坐标系与Flash中的坐标系一样,一切都的颠倒的.在标准的数学坐标系中,X轴表示水平 ...

  7. Shiro - 关于session

    Shiro Session session管理可以说是Shiro的一大卖点. Shiro可以为任何应用(从简单的命令行程序还是手机应用再到大型企业应用)提供会话解决方案. 在Shiro出现之前,如果我 ...

  8. C Primer Plus(第六版)中文版 中的错误1

    #include<stdio.h> #include<stdlib.h> #include<string.h> #define TSIZE 45 struct fi ...

  9. sql:查询创建表的结构

    --显示所有用户表: --1 SELECT SCHEMA_NAME(schema_id) As SchemaName , name As TableName from sys.tables ORDER ...

  10. SPOJ QTREE5

    题意 一棵\(n\)个点的树,点从\(1\)到\(n\)编号.每个点可能有两种颜色:黑或白. 我们定义\(dist(a,b)\)为点\(a\)至点\(b\)路径上的边个数. 一开始所有的点都是黑色的. ...