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

2023-11-08

先说结论:C语言由B语言编写,B语言是由A语言编写 A→B→C

好了,不开玩笑了

既然你能提出这个级别的问题,说明你应该学过C。既然你能提出这个级别的问题,说明你没学过编译原理(或者全还给老师了,容我不厚道一下下)。

你所谓的"C语言",准确来说,指的是能把C语言程序翻译成机器指令程序的"编译器"程序。

先用汇编写一个极小的原始编译器(AC),能编译最简单的C语法。然后用该原始编译器AC编译一个最简单的C编译器(CC1)。然后用CC1编译一个稍微复杂一点的C编译器(CC2)。最终,像滚雪球一样,C语言就把一个拥有完全编译功能的C编译器给编译出来了。

经典教材《编译原理》,开篇讲的就是这个问题。

本人新建一个技术交流圈子,群主是10年老技术人员,某上市公司的技术负责人,群里面每天会给群友解答疑问,招聘内推,点击即可加入圈子

技术交流群,群友每天分享干货,答疑解惑
最早的高级计算机语言是,ALGOL 58、后来进化为ALGOL 60。分别被创造于1958年和1960年,这门语言暂且被称为A语言,尽管当时的人不这么叫,现在的人还是习惯了。

1963年,由剑桥和伦敦大学合作改进的CPL语言出现,当时并没有把它命名为C语言、也不是B语言。鉴于是对A语言的改进,暂且叫做A+语言吧。这门语言更接近硬件一些,但是使用不那么容易,很多事情还是难以实现。

1967年

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言本身是用什么语言写的? 的相关文章

  • Java中ArrayList的交集和并集

    有什么方法可以做到这一点吗 我正在寻找 但没有找到 另一个问题 我需要这些方法 以便我可以过滤文件 有些是AND过滤器 有些是OR过滤器 就像集合论中的那样 所以我需要根据所有文件和保存这些文件的联合 相交 ArrayList 进行过滤 我
  • 不同帐户上的 Spring Boot、JmsListener 和 SQS 队列

    我正在尝试开发一个 Spring Boot 1 5 应用程序 该应用程序需要侦听来自两个不同 AWS 帐户的 SQS 队列 是否可以使用 JmsListener 注解创建监听器 我已检查权限是否正确 我可以使用 getQueueUrl 获取
  • 序列的排列?

    我有具体数量的数字 现在我想以某种方式显示这个序列的所有可能的排列 例如 如果数字数量为3 我想显示 0 0 0 0 0 1 0 0 2 0 1 0 0 1 1 0 1 2 0 2 0 0 2 1 0 2 2 1 0 0 1 0 1 1 0
  • Spring应用中Eureka健康检查的问题

    我正在开发一个基于 Spring 的应用程序 其中包含多个微服务 我的一个微服务充当尤里卡服务器 到目前为止一切正常 在我所有其他微服务中 用 EnableEurekaClient 我想启用这样的健康检查 应用程序 yml eureka c
  • 在内存中使用 byte[] 创建 zip 文件。 Zip 文件总是损坏

    我创建的 zip 文件有问题 我正在使用 Java 7 我尝试从字节数组创建一个 zip 文件 其中包含两个或多个 Excel 文件 应用程序始终完成 没有任何异常 所以 我以为一切都好 当我尝试打开 zip 文件后 Windows 7 出
  • 在 Jar 文件中运行 ANT build.xml 文件

    我需要使用存储在 jar 文件中的 build xml 文件运行 ANT 构建 该 jar 文件在类路径中可用 是否可以在不分解 jar 文件并将 build xml 保存到本地目录的情况下做到这一点 如果是的话我该怎么办呢 Update
  • 如何更改javaFX中按钮的图像?

    我正在使用javaFX 我制作了一个按钮并为此设置了图像 代码是 Image playI new Image file c Users Farhad Desktop icons play2 jpg ImageView iv1 new Ima
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • Java 集合的并集或交集

    建立并集或交集的最简单方法是什么Set在 Java 中 我见过这个简单问题的一些奇怪的解决方案 例如手动迭代这两个集合 最简单的单行解决方案是这样的 set1 addAll set2 Union set1 retainAll set2 In
  • 将流转换为 IntStream

    我有一种感觉 我在这里错过了一些东西 我发现自己做了以下事情 private static int getHighestValue Map
  • 在 junit 测试中获取 javax.lang.model.element.Element 类

    我想测试我的实用程序类 ElementUtils 但我不知道如何将类作为元素获取 在 AnnotationProcessors 中 我使用以下代码获取元素 Set
  • 帮助将图像从 Servlet 获取到 JSP 页面 [重复]

    这个问题在这里已经有答案了 我目前必须生成一个显示字符串文本的图像 我需要在 Servlet 上制作此图像 然后以某种方式将图像传递到 JSP 页面 以便它可以显示它 我试图避免保存图像 而是以某种方式将图像流式传输到 JSP 自从我开始寻
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • 如何在用户输入数据后重新运行java代码

    嘿 我有一个基本的java 应用程序 显示人们是成年人还是青少年等 我从java开始 在用户输入年龄和字符串后我找不到如何制作它它们被归类为 我希望它重新运行整个过程 以便其他人可以尝试 的节目 我一直在考虑做一个循环 但这对我来说没有用
  • 如何对不同的参数类型使用相同的java方法?

    我的问题 我有 2 个已定义的记录 创建对象请求 更新对象请求 必须通过实用方法进行验证 由于这两个对象具有相同的字段 因此可以对这两种类型应用相同的验证方法 现在我只是使用两种方法进行重载 但它很冗长 public record Crea
  • 如何访问JAR文件中的Maven资源? [复制]

    这个问题在这里已经有答案了 我有一个使用 Maven 构建的 Java 应用程序 我有一个资源文件夹com pkg resources 我需要从中访问文件 例如directory txt 我一直在查看各种教程和其他答案 但似乎没有一个对我有
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • 关键字“table”附近的语法不正确,无法提取结果集

    我使用 SQL Server 创建了一个项目 其中包含以下文件 UserDAO java public class UserDAO private static SessionFactory sessionFactory static se
  • 使用 CXF-RS 组件时,为什么我们使用 而不是普通的

    作为后续这个问题 https stackoverflow com questions 20598199 对于如何正确使用CXF RS组件我还是有点困惑 我很困惑为什么我们需要
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其

随机推荐

  • 记录一下 CMU 15445 项目

    目录 Write In Front PROJECT 1 BUFFER POOL TASK 1 LRU REPLACEMENT POLICY 核心概念 数据结构 Other TASK 2 BUFFER POOL MANAGER INSTANC
  • 区块链学习笔记3——BTC协议

    区块链学习笔记3 BTC协议 学习视频 北京大学肖臻老师 区块链技术与应用 笔记参考 北京大学肖臻老师 区块链技术与应用 公开课系列笔记 目录导航页 数字货币所面临的主要挑战 Double spending attack 双花攻击 同一张数
  • java es score_elasticsearch java原生打分插件开发

    能有影响elasticsearch score的方法有很多 官方推荐的是使用内置的painless脚本语言结合function score来重新定义score 由于本人开发的项目其算法是由java语言开发的 于是决定尝试原生脚本开发 ela
  • 石油信息化新技术应用前景

    随着石油信息化集中集成 物联网的建设 云计算 移动互联 大数据技术在石油行业的应用前景如何呢 什么是智慧油田 智能油田呢 个人的一些想法总结如下 对行业的关注基本停留在14年4月 疏漏局限难免 一 关于云计算基础设施在互联网 电商领域应用方
  • html常见标签总结1

    1 常见标签总结01 代码 h1 文本修饰标签 h1 h2 表强调 h2 p strong 这是strong文本修饰标签的效果 strong p p em 这是em文本修饰标签的效果 em p p strong的强调效果更强 em的强调效果
  • linux,时间改成utc

    ln sf usr share zoneinfo UTC etc localtime 运行ok
  • 系统修复模式(Recovery mode) 的体验

    什么是修复模式 直观的体验就是在你的normal mode失败的时候 你发现在你的启动页面 和grub有关 有另一种选项就是recovery mode 具体的定义可以搜索百度或其他 为什么在其他启动失败的时候 修复模式能进入系统 我的经历是
  • Spring MVC静态资源处理

    优雅REST风格的资源URL不希望带 html 或 do 等后缀 由于早期的Spring MVC不能很好地处理静态资源 所以在web xml中配置DispatcherServlet的请求映射 往往使用 do xhtml等方式 这就决定了请求
  • 2023年十大最佳自动化测试工具

    Best Automation Testing Tools for 2023 对更快交付高质量软件 或 快速质量 的需求要求组织以敏捷 持续集成 CI 和DevOps方法论来寻找解决方案 测试自动化是这些方面的重要组成部分 最新的 2018
  • 合并DataGrid单元格

    做项目有时也会遇到要合并DataGrid单元格的情况 在DataGrid单元格中有ColumnSpan RowSpan Visible属性 这跟Table控件中的colspan rowspan属性相同 因此我们可以利用这些属性来合并Data
  • 前端例程20221012:宣纸材质背景

    演示 原理 使用 background image 加载材质图片 材质图片使用半透明的灰度图像 使用 background color 进行染色 代码
  • 在IDEA集成Github

    在IDEA集成Github 在IDEA中设置Git 在File gt Setting gt Version Control gt Git gt Path to Git executable选择你的git安装后的git exe文件 然后点击T
  • OC_YYModel字典转模型的几种详细用法

    OC YYModel字典转模型的几种详细用法 目录 JSON转字符串 普通字典转模型 模型属性有自定义的模型YYUSer 属性有数组 数组里自定义模型 还有字典和集合 字典里的key与模型里的属性名不一致 常用的几个方法 json转模型 i
  • 以太坊分片Sharding FAQ

    简介 目前 在所有的区块链协议中每个节点存储所有的状态 账户余额 合约代码和存储等等 并且处理所有的交易 这提供了大量的安全性 但极大的限制了可扩展性 区块链不能处理比一个单节点更多的交易 很大程度上因为这个原因 比特币被限制在每秒3 7笔
  • 【Linux篇】第八篇——Linux下的进程控制(进程创建+进程终止+进程等待+进程程序替换+简易shell的实现)

    这篇博客就要开始聊一聊进程控制相关的内容了 这部分的内容十分的丰富且十分的重要 学好这一块内容是非常有必要的 目录 进程创建 fork函数 写时拷贝 进程终止 进程退出的三种场景 进程常见的退出方法 进程等待 进程等待的方法 wait方法
  • Unity 实用小技巧合集

    Unity小技巧介绍 一 Unity小技巧介绍 二 Unity小技巧介绍 三 Unity小技巧介绍 四
  • 用canvas绘制微信小程序海报页面并保存相册-适用微信原生

    微信小程序绘制海报并保存相册 tip 代码中使用的是uni的api 如果使用原生微信小程序开发 可以把uni更换成wx使用 文章目录 微信小程序绘制海报并保存相册 前言 一 分析需求 二 准备数据 三 编码开始 html部分 解析 js部分
  • Python中使用xpath获取select option的每一行的text和value

    原数据内容如下
  • 设计模式--适配器模式

    适配器模式属于结构型模式 基本原理 根据不同的需求 使用一个适配器去寻找应对的方法 主要流程 1 创建解决方法的类 2 创建一个适配器 根据不同需求对应相应的解决方法 3 使用一个类去分配适配器 注意 适配器不是在详细设计时添加的 而是解决
  • C语言本身是用什么语言写的?

    先说结论 C语言由B语言编写 B语言是由A语言编写 A B C 好了 不开玩笑了 既然你能提出这个级别的问题 说明你应该学过C 既然你能提出这个级别的问题 说明你没学过编译原理 或者全还给老师了 容我不厚道一下下 你所谓的 C语言 准确来说