首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
dejavudwh
掘友等级
学生
|
大三咸鱼
一名咸鱼大学生
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
0
文章 0
沸点 0
赞
0
返回
|
搜索文章
最新
热门
思源笔记、RE和Trilium:构建你个人的知识体系
最近一直在找笔记类的应用,因为像传统的的笔记应用:印象笔记,为知笔记,OneNote和其它线性笔记都不能满足的我需求。最后在对包括wolai、roam research、roam edit、obsidian、tiddywiki、notion、trilium进行笔记的过程当中,我…
从零实现一个React:Luster(一):JSX解析器
这是之前在掘金发的两条沸点,懒得写了,直接复制过来作为前言了。然后这个项目可能之后还会继续写,增加一些路由或者模板引擎的指令什么的,但是再过没多久寒假就有大块时间了就可能不摸这个鱼去开其它坑了,随缘吧。所以先写JSX的解析器吧,这个部分也比较独立 最近心情比较低落,摸鱼也摸到恐…
PL真有意思(八):其它程序设计模型
在之前几篇我们讨论的语法、语义、命名、类型和抽象适用于所有语言。然而我们的注意力都主要集中在命令式语言上,现在这篇来看看其它范式的语言。函数式和逻辑式语言是最主要的非命令式语言。 命名和作用域问题出现在各种模型中,还有类型、表达式和选择与递归等控制流概念等等。所有语言都必须经过…
PL真有意思(七):数据抽象和面向对象
在之前的名字、作用域那篇提到模块类型,它使程序员可以从一个给定抽象出发,通过实例化产生多个实例;再后面是类,它使程序员可以定义一族相关的抽象。 随着软件变得越来越复杂,数据抽象已经变成了软件工程中最重要的部分。由模块和模块类型提供的这种抽象至少带来了如下三个好处: 它起到一种故…
PL真有意思(六):子程序和控制抽象
在之前我们把抽象定义为一种过程,程序员可以通过它将一个名字与一段可能很复杂的程序片段关联起来。抽象最大的意义就在于,我们可以从功能和用途的角度来考虑它,而不是实现。 在大多数程序设计语言中,子程序是最主要的控制抽象的方法。大多数子程序都是参数化的,即通过传递一些参数来影响子程序…
PL真有意思(五):数据类型
现在大多数程序设计语言中都有表达式和/或对象的类型概念。类型起着两种主要作用: 为许多操作提供了隐含的上下文信息,使程序员可以在许多情况下不必显示的描述这种上下文。比如int类型的两个对象相加就是整数相加、两个字符串类型的对象相加就是拼接字符串、在Java和C#中new obj…
PL真有意思(四):控制流
对于不同类别的语言对不同类别的控制流的重要性也不尽相同,比如顺序执行相比于函数式对于命令式则更加重要。而命令式中更倾向用迭代,函数则更强调递归 在讨论控制流之前先讨论下表达式的问题,先明确两个概念:运算符通常是指那些采用特殊语法形式的内部函数(比如+-*/等),运算对象指的是运…
PL真有意思(三):名字、作用域和约束
这两篇写了词法分析和语法分析,比较偏向实践。这一篇来看一下语言设计里一个比较重要的部分:名字。在大部分语言里,名字就是标识符,如果从抽象层面来看名字就是对更低一级的内存之类的概念的一层抽象。但是名字还有其它相关的比如它的约束时间和生存周期等等 约束就是两个东西之间的一种关联,例…
PL真有意思(二):程序设计语言语法
比如一个整数常量就可以是多个数字重复任意多次,也叫做正则语言。如果对于一个字符串,我们再加入递归定义即可以描述整个语法,就可以称作上下文无关语法 一般正则表达式只适用于描述单词,因为正则表达式无法描述嵌套结构,一般正则表达式的实现都是用有限状态自动机,之前用Python实现了一…
PL真有意思(一):引言
断断续续学编译原理到之前发过写一个编译器和正则表达式引擎系列文章也有一段时间了,然后最近看完PLP这本书,这本书应该算是入门书,但是对我这种半吊子收获很大。所以为了弥补最近学操作系统和接外包摸的鱼,就想写写看完这本书的收获。(为拙劣的标题道歉 下面再看两个概念,编译和解释。 编…
下一页
个人成就
文章被点赞
62
文章被阅读
67,315
掘力值
1,470
关注了
0
关注者
93
收藏集
0
关注标签
34
加入于
2018-08-14