当前位置: 首页 > news >正文

C语言本身是用什么语言写的

C语言是用C写的吗?,没有第一个编译器哪来的C?,那它到底从哪冒出来的。

今天翻了翻老资料,才知道这事根本不是传说里那样——C语言不是天才一拍脑袋想出来的,它是被逼出来的。Multics项目搞了几年,一堆大公司参与,结果做出来的东西又慢又占内存,贝尔实验室直接退出。汤普森回到自己办公室,在一台破旧的PDP-7上写了个小系统,连内存都只有8KB。他先用汇编写,写完发现太累,就弄了个叫B的语言,解释执行,简单是简单,但跑得比蜗牛还慢。

后来换到PDP-11,机器好点,B就不行了。里奇开始改——不是加功能,是往硬件上靠。PDP-11有自动增减地址的指令,他就把++和--加进去;寄存器能存16位数据,就定int是16位;内存按字节寻址,char就刚好是1字节。这些不是随便定的,是把机器怎么干活,原样搬进语法里。连a

等于*(a+i)这种写法,都是为了编译器能直接翻译成一条加法指令,不浪费一个时钟周期。

第一个C编译器根本不是用C写的。是里奇他们先用汇编写了个极简版本,只支持if、while、基础运算和函数调用——小到可以在纸上推演清楚。用它编译出稍强一点的C编译器,再用这个编译器去写更完整的C语言和UNIX内核。1973年第三版UNIX内核已经全用C重写了。这过程不是炫技,是实在没别的路:你不能一边造车一边设计轮子,得先用木头轮子跑起来,再换铁的、钢的、最后才是合金的。

很多人说C可移植,其实刚出生那会儿,它根本离不开PDP-11。float自动变double?因为PDP-11的浮点协处理器只算双精度。register关键字后来没人用了?因为编译器自己比人更懂怎么分配寄存器。K&R第一版里main()不写返回类型都行,void也不需要,不是忘了,是当时PDP-11上压根没这个抽象需求。C不是通用语言,它是PDP-11的镜像,只是碰巧长得太像人类写的代码,让人误以为它很“高级”。

1978年那本《The C Programming Language》一出来,大家才发现:哦,原来别人也是这么写的。它没被当成标准,但所有人都照着它干——因为UNIX跟着它一起卖出去了。后来pcc编译器试图把C搬到别的机器上,就得砍掉一些直译硬件的特性,效率降了,但能用了。到1989年ANSI定标准,才正式加入void、函数原型、const这些东西。这不是技术升级,是妥协:C要进大公司、进学校、进课本,就得放弃一部分和硬件的硬连接。

标准化之后的C,慢慢从系统程序员的工具,变成了工程师的通用语言。但它的底子没变:指针还是能随便算地址,数组不检查越界,union还是靠程序员自己记哪个字段在用。这不是bug,是设计选择——它信任你能管住自己,也默认你真正在乎的是机器怎么跑得快,而不是代码看起来多安全。

现在看C语言,它不像Python那样友好,也不像Rust那样防错。但它写出来的程序,只要不写错,就能贴着硬件跑。它的语法古怪,但每一条背后都有一台老机器在喘气。它的编译器能自举,不是为了秀技术,是因为当年没人给它准备现成的工具链,只能自己造一把钥匙,再用这把钥匙打开下一扇门。

C语言没说过它想改变世界。它只是静静地,把1970年代一台小机器的脾气,刻进了全世界的代码里。

它到现在还在用。

http://www.jsqmd.com/news/959409/

相关文章:

  • 2026年质量好的耐磨硬化地坪/混凝土浇筑口碑好的厂家推荐 - 品牌宣传支持者
  • 实力香薰工厂技术维度拆解:从产能到服务全解析 - 优质品牌商家
  • JUNIPER QFX5210-64C-CH网络交换机
  • HSFF_electronic desktop_learning
  • 2026年常熟靠谱驾校TOP5盘点 核心维度实测对比 - 优质品牌商家
  • 讲真的2026年天津离婚律师 这5位值得信赖推荐 - 本地品牌推荐
  • 【Gemini反洗钱检测实战指南】:20年风控专家亲授5大误报规避技巧与实时拦截黄金法则
  • 2026年靠谱的办公家具定做/商丘现代办公家具/办公家具定制/办公家具口碑好的厂家推荐 - 品牌宣传支持者
  • VC++6.0创建C语言文件指南
  • NITZ 网络时间与时区同步架构
  • 2026年比较好的台州亲子夏令营/台州英语夏令营/台州科技夏令营口碑推荐 - 行业平台推荐
  • COM3D2.MaidFiddler:实时编辑女仆数据的终极工具指南
  • 别再轮询了!用STM32F407的USART空闲中断+DMA搞定不定长数据,效率翻倍
  • 交流直流lem莱姆传感器ltc350:闭环磁通门技术电流传感器/S技术解析与选型全推荐 - 优质品牌商家
  • 2026床用气杆选型全解析:气压支撑杆/气弹簧接头/汽车气弹簧/液压撑杆/液压支撑杆/性能标准与靠谱厂家参考 - 优质品牌商家
  • RK3588的Uboot启动流程分析--Start.s(1)
  • 2026年比较好的钢筋桁架楼承板/包头Z型钢/镀锌楼承板/包头楼承板优质厂家推荐榜 - 行业平台推荐
  • 摄影作品批量水印终极指南:3分钟学会自动添加专业水印
  • 第五章:让主角动起来——玩家角色创建
  • 高效多层回归工具:reghdfe实战完全指南
  • Token 聚合平台的技术内幕:从原理到选型,开发者必须知道的一些事
  • 2026年热门的防静电环氧地坪/混凝土浇筑/环氧磨石地坪公司哪家好 - 行业平台推荐
  • 2026年靠谱的喷涂机器人/码垛机器人推荐厂家精选 - 品牌宣传支持者
  • CISILE 2026观察:当实验室成为系统,科学家如何与“惊喜”重逢
  • 2026年口碑好的压铸机器人/喷涂机器人/码垛搬运机器人/免编程视角机器人精选厂家推荐 - 行业平台推荐
  • JVM核心四子系统解析:揭秘Java执行引擎
  • Google Pay支付接入别再踩坑了!手把手教你配置服务账号与API权限(附401/403错误解决方案)
  • 2026年知名的商丘办公家具定做/商丘办公家具推荐厂家精选 - 行业平台推荐
  • 一键永久备份QQ空间历史说说:守护您的数字青春记忆
  • 2026年Q2商用橱柜厂家盘点:地址及核心业务一览 - 优质品牌商家