Reactjs+BootStrap开发自制编程语言Monkey的编译器:发刊词

编译原理几乎是计算机专业中最晦涩难懂的课程。很多学生学这门课只不过是为了通过考试,学完后对编译原理之精妙仍然是摸不着头脑。而很多教这门课的老师,也只不过是混口饭吃,他自己未必对编译原理有多少深入的了解和把握,于是与其昏昏,使人昭昭。毕业多年后,回过头来反省我所承受的教育,我发现我们的教育总是流于表面的肤浅,给学生展示的始终是冰山的一角,对冰山下的巨大形体置若罔闻,于是整个系统虽然培养出大量的计算机专业人员,但有能力对计算机知识具备深入见解的人凤毛麟角,很多人其实是走上工作岗位后,通过大量的生产实践才开始对计算机知识有了一定程度的深入窥探的,我就是其中之一。

计算机始终是一门理论结合实践的科学。光有理论却不能实践,那么理论看起来晦涩难懂,听起来虚儿巴脑,于是美妙的智慧结晶在应试教育体制下变成了虚张声势的怪兽,让学习它的人惊恐不慌,以为自己要被这只巨大的怪兽所吞灭。我是过来人,知道这种关说不练假把式的巨大危害,那种理论讲起来头头是道,搞得我晕头转向,处处受挫的煎熬感真是不忍回忆,我真心希望通过动手实践,能够让那些有志于在科技行业大展身手的年轻人不要再走我的老路。

如果人类只会谈情说爱,那么早就灭绝了。因此爱的核心在做不在说,科学技术的理解和掌握更是如此。虽然我们处于技术大爆炸的时代,各种黑科技看似漫天飞舞,但无论外表如何变化,知识的底层逻辑都是一样的,对于自然科技而言,它的底层逻辑是数学,而计算机科学它的底层逻辑是算法。你看当下最火热的区块链,人工智能,量子计算,其核心无一不是算法。当前很多人在技术领域碰到天花板,无法更上一层楼,说到底是因为自己热衷于肤浅花哨的表面技术,不敢深入到更加复杂的技术内核去笃实自己的根基,致使后期乏力,很快就偃旗息鼓了。

编译原理作为计算机科学的核心支柱,它集结了算法,架构设计,计算机硬件,形式语言等计算理论的核心要义,是计算机科学的集大成者,你看那些计算机的奠基性大牛,很多都是从编译器的开发上打响名头的,例如比尔盖茨早期自己开发的basci编译器,C++之父Bjarne Stroustrup,C语言之父丹尼斯.里奇,java之父James Gosling。当你听到某个人是做编译器的,你无需多想就知道这哥们肯定是个技术大牛,据说直到现在,能做出一个专业编译器的人估计也就只能坐满一间会议室大小的房间,我希望通过我的努力,能帮你在这个房间里挤出一个属于你的座位!

我曾经花两年的时间在网易云课堂上完成了一个编译器的开发课程,我用java制作了一个C语言编译器,这个编译器不但能解释执行C语言,同时还能把C语言编译成java字节码,使得C语言也能运行到java虚拟机上。视频用java开发C语言编译器

通过这个项目的开发,我获取了不少经验和教训。一是原来课程过于纠结算法细节,这使得课程过度理论化,这使得不少人觉得门槛太高,学起来很吃力。第二,代码运行在控制台界面,缺乏图形界面使得程序看起来很死板,缺乏活力。第三,代码量过大,体系结构过于复杂,容易引发受众的畏难情绪,因此课程加入的人多,能够坚持的人很少。

为了弥补这些缺陷,我打算重新用Reactjs+BootStrap的方式开发一门新编程语言的编译器,这么语言叫Monkey,它有点类似于javascript这种脚步语言,由于语法简单,实现它的编译器比实现C语言的编译器要容易很多。Monkey语言具备编程语言的所有要素:
1, 有类似C语言的语法结构
2, 支持变量绑定
3, 支持整形和布尔型数据类型
4, 支持算术表达式的解析
5, 一级类定义(first-class)和高阶函数(higher order functions)
6, 支持闭包,这点像javascript
7, 支持字符串数据类型
8,支持数组型数据类型
9, 支持哈希表型数据类型

之所以想到用Reactjs 和 Bootstrap 来开发,一来是前端开发能够支持丰富多彩的用户界面,这样使得整个项目始终保持在生动活泼的状态之下。而来当今前端开发,特别是基于Reactjs的前端开发炙手可热,掌握该前端框架的工程师能够在行业内获取高薪就业机会。所以这么课程学下来能够收获一箭双雕的效果,既能增加内在实力,又能增强外在的实践技巧。金庸在《笑傲江湖》中,为令狐冲所在的华山派设置了两个老死不相往来的分支,一支叫气宗,以岳不群为首,气宗讲究内力心法,另一支叫剑宗,以马云最喜欢的风清扬为首,剑宗讲究运剑技巧的登峰造极。我们这么课程相当于把两宗结合为一体,编译原理的理解和掌握相当于气宗,让你内力深厚,具备稳若泰山之势。Reactjs+Bootstrap的掌握相当于剑宗,技术的运用如行云流水,无往而不利。

自古华山一线天,成为高手没有捷径,只能是扎扎实实打基础,勤学苦练增技能。消耗大量的心血和汗水必不可少,但我们完全可以让这个过程有趣而又生动,没有任何成就的取得是不用付出代价的,走捷径将让职业生涯是付出难以承受的代价,就如同你翻开葵花宝典后第一页看到的那样:欲练此功,必先自宫!

更详细的讲解和代码调试演示过程,请点击链接

如果您点击链接后还没有看到课程,那表明视频还在审批中,尽情期待!

更多技术信息,包括操作系统,编译器,面试算法,机器学习,人工智能,请关照我的公众号:


这里写图片描述
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,784评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,745评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,702评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,229评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,245评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,376评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,798评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,471评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,655评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,485评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,535评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,235评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,793评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,863评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,096评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,654评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,233评论 2 341

推荐阅读更多精彩内容