编程的魔咒

本来想写一个语法解析器,但现在发展成写一门语言的解释器,为什么会放弃当时的初衷呢?

我首先发现给语法解析器增加功能越来越难,重构越来越复杂,我感到深深的无力。

内嵌代码,变量命名,逻辑判断,这明明就是在设计语言!

那么我如果设计了一门语言,还能完成这个项目吗?

可以,用这门语言的自带的数据结构,这样内嵌代码变得自然,循环和条件判断也顺手拈来。太棒了!

但设计语言,什么时候能设计好呢?好的设计只有一个办法,就是进行无穷无尽的测试。

为什么编程语言那么重要,因为编程语言是被测试最多的工具,最稳定,也最灵活。但我的语言能进行多少测试呢?

我并不是想设计语言,而是不得不走上了这条道路,因为所有的项目做到最后,都隐约的出现了一门语言的身影。

我现在就直面这个隐藏在所有复杂项目背后的语言:

它很像 Lisp,但又不完全是。它用一种数据结构的语法书写代码,这样其中的一部分逻辑就可以改变整个代码本身,扩展成更多的代码。对于我这个能少些一个字母就高兴的懒人,这简直就是福音。

它的语法很舒服,是 a > b 形式,而不是 (> a b) 的形式。它有局部变量声明:my x = 0 而不是 (let (x 0) ( ...) )

我的屏幕大小有限,过多的嵌套会让我迷失。

我给它起名叫 Spp, String Prepare Process, 字符串预处理。我想让你从我的手中实现,虽然你存在于我以前的项目中,时隐时现。

(my $x 1)

(our @a [1 2 3])

(if ( $x == 1) (say ‘$x == 1‘) else (say ‘$x != 1‘))

(package Spp)

(my $regex :[\w+])

{ a 1 b 2 }

时间: 2024-10-25 14:00:35

编程的魔咒的相关文章

魔咒词典------HDOJ杭电1880(字符串的处理,很简单)

Problem Description 哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助. 给你一部魔咒词典.当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能:当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒.如果他要的魔咒不在词典中,就输出"what?" Input 首先列出词典中不超过100000条不同的魔咒词条,每条格式

【SDOI2016】生成魔咒

Description 魔咒串由许多魔咒字符组成,魔咒字符可以用数字表示.例如可以将魔咒字符 1.2 拼凑起来形成一个魔咒串 [1,2]. 一个魔咒串 S 的非空字串被称为魔咒串 S 的生成魔咒. 例如 S=[1,2,1] 时,它的生成魔咒有 [1].[2].[1,2].[2,1].[1,2,1] 五种.S=[1,1,1] 时,它的生成魔咒有 [1]. [1,1].[1,1,1] 三种.最初 S 为空串.共进行 n 次操作,每次操作是在 S 的结尾加入一个魔咒字符.每次操作后都 需要求出,当前的

Bzoj4516 [Sdoi2016]生成魔咒

Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 947  Solved: 529 Description 魔咒串由许多魔咒字符组成,魔咒字符可以用数字表示.例如可以将魔咒字符 1.2 拼凑起来形成一个魔咒串 [1,2]. 一个魔咒串 S 的非空字串被称为魔咒串 S 的生成魔咒. 例如 S=[1,2,1] 时,它的生成魔咒有 [1].[2].[1,2].[2,1].[1,2,1] 五种.S=[1,1,1] 时,它的生成魔咒有 [1]. [1,1].[

hdu 1880 魔咒词典(字符串hash)

题目链接:hdu 1880 魔咒词典 题意: 给你一个10w的词典,让你输出对应的字段. 题解: map暴力存字符串肯定会卡内存,这里用BKDR字符串hash一下,用map映射一下. 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;++i) 3 using namespace std; 4 typedef unsigned long long ull; 5 6 const int N=1e5+7,seed=133

魔咒词典(hdu 1880)

Problem Description 哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助. 给你一部魔咒词典.当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能:当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒.如果他要的魔咒不在词典中,就输出“what?” Input 首先列出词典中不超过100000条不同的魔咒词条,每条格式为: [魔

C轮魔咒:智能硬件为什么融资难

据相关媒体不完全统计,2015年完成融资的智能硬件公司集中在A轮和B轮,但能挺进C轮的少之又少.对智能硬件创业的年终盘点也显示,此前比较热门的手环.智能家居等主要单品在去年明显出现了回落.陷入C轮魔咒的智能硬件行业,在狂飙突进之后,终于遇到了自己的瓶颈. 智能硬件的C轮融资难,其实不在于资本寒冬来临.毕竟智能硬件才刚刚起步,未来前景无限,只要产品足够优秀,总会受到投资者青睐.之所以遇到这样的困难,更多的是产品本身没有解决消费者痛点,而且缺乏整合产业链的能力. 陷入C轮桎梏 智能硬件由生到死 智能

cogs 2223. [SDOI2016 Round1] 生成魔咒

★★☆ 输入文件:menci_incantation.in 输出文件:menci_incantation.out 简单对比 时间限制:1 s 内存限制:128 MB [题目描述]魔咒串由许多魔咒字符组成,魔咒字符可以用数字表示.例如可以将魔咒字符 1.2 拼凑起来形成一个魔咒串 [1,2].一个魔咒串 S 的非空字串被称为魔咒串 S 的生成魔咒.例如 S=[1,2,1] 时,它的生成魔咒有 [1].[2].[1,2].[2,1].[1,2,1] 五种.S=[1,1,1] 时,它的生成魔咒有 [1

魔咒词典

hdu1880:http://acm.hdu.edu.cn/showproblem.php?pid=1880 题意:中文题,直接看题. 题解:第一法用hash做的的题目.虽然用了很长时间,但是还是AC了.而且用了string 所以有点慢. 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 char

hdu 1880 魔咒词典

题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1880 魔咒词典 Description 哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助. 给你一部魔咒词典.当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能:当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒.如果他要的魔咒不在词典中,就输