《C 语言速通(8)运算符与逻辑控制》 《C 语言速通(9)函数与宏定义》 《用 C 写一门编程语言(0)程序编译原理》 Lispy Lispy 是我们在本系列中要开发的一门解析型编程语言,源自著名的《Build Your Own Lisp》。 完整代码:github.com/JmilkFan/Lis 本实践中,我们带着 2 个目的开展: 应用C 语言编程。 理...
当我们学习一门编程语言的时候也一样,当我们尝试开发一门编程语言的时候亦如此,首先要考虑的就是语言的语法、及其语义。 词法分析 大多数编程语言开发的第一步是词法分析或分词。通常使用 “Lex” 或“Tokenizer” 来进行描述,表示将一大堆文本分解成多个符号。 词法分析器将包含源码的文件作为输入字符串,输出包含标...
这部分我们依靠 C 语言本身来作为代码执行器。 「实现工具库」:最后我们会尝试编写一些通用的工具库。 交互式解析器,也被称为 REPL(Read-Evaluate-Print-Loop,读取-求值-输出-循环),这种技术被广泛地应用在各种编程语言的解析型中,例如 Python Shell。 在编写一个完整的 REPL 之前,我们先实现一个简单的程序:读取...
我们希望内建的函数可以接受可变数量的参数,例如:+ 和 join 这样的函数可以取任意数量的参数,并在逻辑上对它们进行操作。 因此,我们将使用 & 符号,让用户可以定义看起来像 {x&xs} 这样的形式的参数列表,类似于 C 语言中可变长形参符号 ...。这意味着一个函数将接受一个参数 x,后跟零个或多...
《用 C 语言开发一门编程语言 — 交互式解释器l》 《用 C 语言开发一门编程语言 — 跨平台的可移植性》 编程语言的本质 在19 世纪 50 年代,语言学家 Noam Chomsky 定义了一系列关于语言的重要理论。这些理论支撑了我们今天对于语言结构的基本理解。其中重要的一条结论就是:自然语言都是建立在递归和重复的子结...
《用 C 语言开发一门编程语言 — 基于 Lambda 表达式的函数设计》 《用 C 语言开发一门编程语言 — 条件分支》 《用 C 语言开发一门编程语言 — 字符串与文件加载》 原生类型 目前我们的语言只封装了 C 语言中的原生 long 和 char* 类型。对于你想要做任何更加有用的计算的情况来说,这是非常有限的。更何...
使用C语言进行软件开发需要掌握基础语法、了解编译和调试过程、熟悉常用库和工具、遵循最佳编程实践。其中,熟悉常用库和工具是非常重要的一环,因为这些资源能显著提高开发效率和代码质量。C语言是一门功能强大、结构化的编程语言,广泛应用于系统软件、嵌入式系统和高性能应用开发。本文将详细介绍如何使用C语言进行软件开发...
C语言的特性,实现OOP C是一门面向过程的语言,但它依旧可以实现大多数面向对象所能完成的工作。比如面向对象的三大特性:封装、继承、多态。我们以下图来写代码举例子。 封装 由于面象向对象是将数据与方法封装到一个类里。使用者无需关心类是怎么实现的。在 C_OOP 中贯彻了这一思想,C中有一种复杂的数据结构叫做...
《用 C 语言开发一门编程语言 — 交互式解析器l》 实现跨平台的可移植性 理想情况下,我希望我的代码可以在任何操作系统上编译并运行,即程序的可移植性(Portability)问题。在 C 语言中,可以使用预处理器来解决这个问题。 使用预处理器指令 预处理器(CPP)也是一个程序,它在真正编译程序之前运行,所以称之为预处理...