C是用什么语言写出来的?

C是用什么语言写出来的?


C语言的起源和发展是一个迭代过程:

1. 最初的C语言编译器的开发始于对B语言的改进。B语言是由Ken Thompson设计的,它是基于BCPL语言简化而来的。在开始前我有一些资料,是我根据网友给的问题精心整理了一份「 C语言的资料从专业入门到高级教程」,

点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!


2. B语言的编译器可能是用汇编语言编写的,因为早期的高级语言编译器往往需要用机器语言或汇编语言编写才能有效控制硬件资源并生成高效的机器代码。

3. Dennis Ritchie在B语言的基础上设计了C语言,最初的C语言编译器的部分或全部很可能是用汇编语言编写的。

4. 随着C语言的发展成熟,出现了用C语言自身重新编写的C编译器,这是一个被称为“自举”(bootstrapping)的过程。这意味着C语言足够强大到能够用来编写自身的编译器,从而摆脱对其他语言的依赖。

综上所述,C语言的首个编译器是用汇编语言和B语言开发的,而后续的C编译器则实现了用C语言编写,形成了自我完善的生态系统。现在我们熟知的一些流行的C语言编译器,如GCC(GNU Compiler Collection)的大部分是用C语言编写的,而Clang的大部分是用C++编写的。

195dfb289419527d06c98e2aee15d348.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/288770.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Sublime 彻底解决中文乱码

1. 按ctrl,打开Console,输入如下代码: import urllib.request,os; pf Package Control.sublime-package; ipp sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHand…

16:00面试,16:06就出来了,问的问题有点变态。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到8月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…

07_Response

文章目录 案例(请求分发案例) Response响应行响应头响应体特殊响应头refreshContent-typeContent-dispositionlocation 案例(登录案例) 案例(请求分发案例) 场景:有多个请求 Http://localhost:…

逐步学习Go-并发通道chan(channel)

概述 Go的Routines并发模型是基于CSP,如果你看过七周七并发,那么你应该了解。 什么是CSP? "Communicating Sequential Processes"(CSP)这个词组的含义来自其英文直译以及在计算机科学中的使用环境。 CSP…

day 36 贪心算法 part05● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间

一遍过。首先把区间按左端点排序,然后右端点有两种情况。 假设是a区间,b区间。。。这样排列的顺序,那么 假设a[1]>b[0],如果a[1]>b[1],就应该以b[1]为准,否则以a[1]为准。 class Solution { public:static bo…

Android中运动事件的处理

1.目录 目录 1.目录 2.前言 3.程序演示 4.第二种程序示例 5.扩展 2.前言 触摸屏(TouchScreen)和滚动球(TrackBall)是 Android 中除了键盘之外的主要输入设备。如果需要使用触摸屏和滚动球,主要可以通过使用运动事…

渐变色x轴换行柱状图

// 系统上云率const optionBar {title: {text: 系统上云率,left: left,textStyle: {color: "#fff",fontSize: 14,fontWeight: 650,align: "center",},},color: [#32C5FF, #00F766, #EECB5F],grid: {top: 40,bottom: 0,},legend: { // 控制图例组件show: …

K8s Pod亲和性、污点、容忍度、生命周期与健康探测详解(上)

🐇明明跟你说过:个人主页 🏅个人专栏:《Kubernetes航线图:从船长到K8s掌舵者》 🏅 🔖行路有良友,便是天堂🔖 在上一章节中,我们详细探讨了Pod的概念、创建、…

逐步学习Go-协程goroutine

参考:逐步学习Go-协程goroutine – FOF编程网 什么是线程? 简单来说线程就是现代操作系统使用CPU的基本单元。线程基本包括了线程ID,程序计数器,寄存器和线程栈。线程共享进程的代码区,数据区和操作系统的资源。 线…

数据结构——排序算法

1、排序的概念 排序是指的是将一组数据(如数字、单词、记录等)按照某种特定的顺序(升序或降序)进行排列的过程。排序算法是实现排序的程序或方法,它们在软件开发和数据处理中扮演着至关重要的角色。 排序算法可以根据…

servlet开发详解

一、什么是servlet,干什么用的??? tomcat作为一个web服务器,也称作servlet容器。servlet只有放在web服务器中才能运行,不能独立运行。tomcat这个容器要做三件事:接收请求、处理请求和响应请求。…

文生视频大模型Sora的复现经验

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的…

java调用jacob进行文件转换ppt转pdf或者png

java调用jacob进行文件转换ppt转pdf或者png 前情提要 最近项目上,遇到一个复杂的ppt,最终要求是要将ppt每一页转成图片原本这个是不难,网上一搜一大堆案例,外加我本身也比较精通aspose,那还不是分分钟搞定。结果就是…

Healix Protocol 的 HLX 通证预售:医疗领域的未来展望

Healix Protocol推出 HLX 通证预售,将带来医疗领域的重要变革。通过其区块链技术,Healix Protocol致力于重新定义医疗服务的可及性与负担性,成为医疗行业的希望之光。该项目旨在增强透明度、可及性和效率,推动医疗体系向更加公平和…

Hadoop面试重点

文章目录 1. Hadoop 常用端口号2.Hadoop特点3.Hadoop1.x、2.x、3.x区别 1. Hadoop 常用端口号 hadoop2.xhadoop3.x访问HDFS 端口500709870访问 MR 执行情况端口80888088历史服务器1988819888客户端访问集群端口90008020 2.Hadoop特点 高可靠:Hadoop底层维护多个数…

Rust语言中Regex正则表达式,匹配和查找替换等

官方仓库:https://crates.io/crates/regex 文档地址:regex - Rust github仓库地址:GitHub - rust-lang/regex: An implementation of regular expressions for Rust. This implementation uses finite automata and guarantees linear tim…

LoadBalance 负载均衡服务调用

前身:Ribbon LB负载均衡(Load Balance)是什么 简单的说就是将用户的请求平摊的分配到多个服务上,从而达到系统的HA(高可用),常见的负载均衡有软件Nginx,LVS,硬件 F5等 spring-cloud-starter-loadbalancer组…

OSG编程指南<二十一>:OSG视图与相机视点更新设置及OSG宽屏变形

1、概述 什么是视图?在《OpenGL 编程指南》中有下面的比喻,从笔者开始学习图形学就影响深刻,相信对读者学习场景管理也会非常有帮助。 产生目标场景视图的变换过程类似于用相机进行拍照,主要有如下的步骤: (1)把照相机固定在三脚架上,让它对准场景(视图变换)。 (2)…

【办公类-21-11】 20240327三级育婴师 多个二级文件夹的docx合并成docx有页码,转PDF

背景展示:有页码的操作题 背景需求: 实操课终于全部结束了,把考试内容(docx)都写好了 【办公类-21-10】三级育婴师 视频转文字docx(等线小五单倍行距),批量改成“宋体小四、1.5倍行…

洛谷day3

B2053 求一元二次方程 - 洛谷 掌握printf用法&#xff1b; #include <iostream> #include <cmath> using namespace std; double a,b,c; double delta; double x1,x2;int main() {cin>>a>>b>>c;delta b*b-4*a*c;if(delta>0){x1 (-bsqrt…