- 博客(48)
- 资源 (12)
- 收藏
- 关注
原创 一种可以自我修改的计算机器
有这样一堆可以存储数字的方格:00000000000000000000000000000000………如果我们可以对其中任意2个方格进行“或"运算并写入任意1个方格,或者对任意1个方格进行"非"运算并写入任意1个方格,那么由无限个方格和操作组成的机器是图灵完备的吗?答案是肯定的,下面我将...
2019-03-25 18:58:24 479
原创 符号变换引擎(Symbol Transform Engine - STE)
在写编译器的过程中,我意识到编译其实是一种符号变换,比如C语言编译成机器码,其实是C源码文件中的符号变换成EXE的16进制符号,这和中文翻译成英语的语言翻译器没什么区别。 每个程序员都有自己喜欢的编程语言和编码风格,所以世界上就出现了大量的编程语言,各种编程语言之间相互通信并不那么简单,C语言是个例外,所以C语言适合做接口。 那么能不能写一个通用的引擎充当各种语言的中间翻译层呢
2014-10-09 12:39:44 1491
原创 超越lua的神语言
神语言(god)是基于lua和RPP的新一代编程语言为什么需要它?1.很多人不喜欢lua的语法,god的语法更像C2.god支持元编程、闭包、协程3.凡是lua支持的特性god也支持,lua不支持的宏god也支持,因此god比lua强大4.god可以使用lua库,甚至允许god和lua混合编程5.god是最快的脚本语言之一,性能与C接近,因为god基于luaJIT6.
2014-10-06 14:48:39 3237 1
原创 数组为什么这么有用?
Lisp只用原子和表就构建了整个世界,其实数组是表的超集(略作思考就能发现,无需证明)。JS的关联数组是红黑树,关联数组并不是C数组的超集,因为C数组可以当成一片连续内存使用。
2014-09-29 12:03:37 1409
原创 计算理论的重大突破,无限深度递归
目前无论是Lisp还是Javascript(C++就更不用说了),递归深度都远远低于可用内存大小,而且栈一旦分配就无法挪动(有指针似乎无解),这个问题的根源在于call指令会把下一指令的地址入栈。我经过几年的思考终于发现,可以把C++的内存模型完全放在堆上,也就是说进行call之前先new出调用函数所需要的空间,而把返回地址作为参数传递进去。这样就从根源上解决了此问题,那什么尾递归就是个渣,完全没
2014-09-29 11:33:48 2056 1
原创 为什么RPP比lua更适合做脚本语言?
1.RPP以静态类型为主,最终的效率肯定比动态类型的lua要高,并且不会引起GC停顿。(目前与luaJIT性能接近)2.RPP没有GC(自动垃圾回收),与C/C++互相调用简单直接,而且他们共享进程内存空间,RPP变量和C++变量生命周期相同,不会出现像lua一样的这里变量已经GC了那边还在使用。3.RPP目前兼容50%的C++语法,70%的C语法,因此它天生就更亲近C++系的语法,所
2014-09-27 20:58:26 2908 1
原创 好消息!国产编程语言RPP 1.86 开源发布!
更新如下: 1.全新JIT引擎,极致的编译和运行速度。 2.精简Lisp内核,无限的动态扩展能力。 3.完全开源,真正的开源不需要协议。 4.集成IDE,编辑、编译、运行一体化,支持代码自动完成。5.兼容50%的C++语法,70%的C语言,编译器本身使用C++编写,但其90%的源码都可以自我编译。源码下载地址:http://pan.baidu.com/s/1bn
2014-09-26 12:08:52 1994
原创 KMP算法
/*KMP算法*/void main(){ putsl(find('abc123','c1')) putsl(find('abc123','c2'))}int find(rstr s,rstr p){ next=get_next(p) i=0 j=0 for i<s.count&&j<p.count if j==-1||s[i]==p[j] i++ j
2014-08-08 00:20:10 993
原创 全排列
/*全排列的非递归实现,支持去掉重复*/void main(){ rbuf v #v.push(1,2,3,4) for v.join('').printl ifn next_permutation(v) break}bool next_permutation(rbuf& v){ if v.count<=1 return false next=v.co
2014-08-06 22:19:29 742
原创 5种语言混合编程:C++、JS、python、Lisp、汇编
/*混合C++、JS、python、Lisp、汇编1种语言,5种语法*/main{ //C++ vector v; v.push(2); putsl(v.size()); if(v.count()==1) { putsl("abc"); } //JS var a=function(x){ return x*2; } putsl(a(3)); a={90
2014-06-23 09:29:23 4782 1
原创 至尊高速,国产语言RPP 1.83强势来袭
下面是 R++的性能测试数据:(奔腾 1.86GHZ,测试 3 次取平均值)运行效率:R++的内部结构和 C++大致相同,所以理论上 R++可以达到和 C++一样的运行速度,目前 R++已开启汇编级内联展开和模式匹配优化,在编译成机器码的情况下运行速度是 C++的 1/1.8(真实速度应该是 1/3),解释运行是 C++的 1/10.7。目前的性能与 luaJI
2014-06-09 09:47:01 3146 9
原创 极速体验,国产编程语言R++1.81内测版发布
性能提高了31%,目前编译运行速度是 C++的 1/7,解释运行是C++的 1/139http://pan.baidu.com/s/1mgmfikS
2014-06-05 10:12:49 1346
原创 汇编优化工具
/*汇编优化工具使汇编代码更具可读性,并提高汇编速度优化15000行大约需要30秒*/import rfile.hmain{ name=getsl s=rfile.read_all_n(name) s=s.replace('\n','\r\n') s=s.replace('dword esp','esp') s=s.replace('dword ebp','ebp')
2014-06-03 12:39:04 1308
原创 仅用位运算实现加减乘除,面试专用
从C语言翻译过来的:main{ fadd(1,2).printl fadd(19,29999).printl fsub(-1,3).printl fsub(19,2345).printl fmul(99,98).printl fmul(-29,235).printl fdiv(99,98).printl fdiv(9,3).printl fdiv(-9,3).
2014-05-30 17:33:26 1501
原创 50行代码实现正则引擎
/*50行代码实现正则引擎,参考《代码之美》,可以轻松解决95%的正则问题c 匹配任意的字母c .(句点) 匹配任意的单个字符 ^ 匹配输入字符串的开头 $ 匹配输入字符串的结尾 * 匹配前一个字符的零个或者多个出现*/main{ putsl match('.*txt','2343txt') putsl match('t.t','2343txt')}bool mat
2014-05-26 09:54:27 1076
原创 60行R++代码实现Lisp解释器
还没有处理lambda、上下文等,有待完善。main{ for putsl(eval(getsl))}rstr eval(rstr s){ s=tokenize(s) v=s.split(' ') if v.get(0)!='(' return v.get(0) next=find(v.sub(2))+2 switch v.get(1) case '+' r
2014-05-13 15:51:46 1252
原创 热烈庆祝国产编程语言R++1.8研发成功
R++是专为懒人设计的国产编程语言,支持无操作系统裸奔、编译成机器码、android、cocos2dx绑定、中文编程、闭包、惰性求值、JSON、Lisp的S表达式、内联汇编、伪代码、模板、宏、多重继承、元编程、反射、自省、指针、引用。为什么需要它?1.目前DIY操作系统一般使用gcc+nasm,R++是编译型语言,抽象能力强过C,可直接内联汇编,不需要面对讨厌的AT
2014-05-12 09:51:30 6236 3
原创 160行flappy bird
/*山寨版 flappy bird使用C风格直接调用cocos2dx如果改成C++风格会更清晰*/import rcc.hmac c_bot_y 80rbuf g_listint g_scoremain{ cc.set_design_size(480,800) cc.set_display_state(false) cc.add_cache('flappy') c
2014-03-20 09:36:58 1444
原创 山寨语言R++ V1.7(支持无操作系统裸奔、编译EXE、cocos2dx、闭包、中文编程)
R++是专为懒人设计的山寨编程语言,支持无操作系统裸奔、编译成机器码、android、cocos2dx绑定、中文编程、闭包、Lisp的S表达式、内联汇编、伪代码、模板、宏、多重继承、元编程、反射、自省、指针、引用。为什么需要它?1. 目前DIY操作系统一般使用gcc+nasm,R++的抽象能力强过C,可直接内联汇编,不需要面对讨厌的AT&T汇编,绝对是您DIY操作系统的利器。
2014-03-18 15:21:11 2063 1
原创 国产编程语言R++ V1.5发布
R++ v1.5内核改动较大,下面是一些主要变化:1.使用PJIT(Pseudocode Just-In-Time),编译速度大幅提高,但运行效率远远不如C++,不过R++将在下一版本支持RJIT(Real Just-In-Time),理论上RJIT的运行速度和C++完全相同,而编译速度却比C++快得多。2.强大的元编程支持,元函数可以直接访问实函数的变量3.完整的反射和自省机制,解释
2013-06-28 13:32:12 4792 6
原创 细胞自动机(生命游戏)源码
/*裸机运行细胞自动机(生命游戏)请反注释#define _RVM并删除ebasic.rp后再编译*/import "rbufm.h"main{ //先初始化堆,推荐把所有操作放在real_main里 rf.init_heap real_main}real_main{ char arr[25][80] char* p(4194304) for i=0 to 24
2013-06-05 11:52:04 1881 1
原创 红黑树源码
//红黑树的大部分代码摘自《算法导论》class rset_i{ T key; rset_i* father; rset_i* left; rset_i* right; int col;//1 is red,0 is black};class rset{ rset_i* m_root; rset_i m_nil; int m_count; ~rset() {
2013-06-04 17:29:32 1064 1
原创 简单的http服务器源码
/*简单的http服务器,参考《深入理解计算机系统》运行后在浏览器输入http://127.0.0.1/1.htm*/import "rsock.h"import "rfile.h"import "rdir.h"main{ rsock svr rsock client svr.listen 80 for svr.accept client { rstr s
2013-06-04 15:51:49 2127 1
原创 新型编程语言R++
R++是专为懒人设计的新型编程语言,它试图融合C++和Lisp,并假定用户是天才,允许DIY运算符和内置数据类型。它可以在Windows、Linux、Android或者IOS上运行,甚至能编译成机器码无操作系统裸奔。这个新玩具是绿色、免费、解释器开源的。(编译器暂不开源)视频演示:http://www.tudou.com/programs/view/40Ez3FuqE1
2013-06-03 18:36:14 2962 8
原创 机器小车
20120305小时候就想拥有一辆视频遥控小汽车,但是这个梦想一直没有实现。以前玩的那种遥控小汽车都有一个缺陷,就是遥控距离有限制,突然有一天我想到了可以利用手机的无线网络(GSM或者3G)进行通讯,那么这个小汽车就可以跑到全球任何一个有手机信号的地方去,实现远距离监控。上网一搜发现有些朋友也有类似想法,有朋友把无线路由器绑在了小车上,利用wifi进行遥控,不过这样仍有距离限制(一般不
2012-05-21 01:35:28 1138 2
原创 冬季恋歌
20111111(本文由RS语言大师半自动模式生成,生成耗时44828ms,修改耗时461641ms) 期待许久的雪花终于飘落了,静静地倚在窗前,看着窗外雪花纷扬、雪片飞舞,飘飘洒洒,好美,伸出一只手,让雪花轻盈地、悄无声息地飘落到手心,若有若无的惨白,指尖跳跃的冰凉,定格此刻的记忆。那个冬天,有雪花纷扬的飘落下来,我觉得生命中所有的冷,都在那个冬天里
2012-05-20 21:44:43 719 2
原创 相对论概述(初中时写的)
有两辆汽车以很快的相同的速度在公路上行驶,被你看见了。你一定会说这两辆车跑得真快。如果你不是这样想的,那么你不需要继续看下去了;如果你跟我一样也是这样认为的,请继续往下看。 从物理学的角度来讲,运动是相对的。两辆车以相同的速度运动,如果以彼此为参照物,那么它们是相对静止的。也就是速度都为0,更谈不上什么快不快的。但如果以我们自己为参照物,它们却又变为高速运动的了。由于我们习惯于把自己当成
2012-05-20 21:42:55 789 1
转载 控诉理科男(蒋方舟)
这事是真的。在某著名理工科大学教室的打水房里,一男一女在排队。女生忽然回头对男生说:“我拧不开杯子了。”男生说:“哦,那我先打水吧。” 还是这所著名的理工科学校的BBS上,曾经有一个著名的热帖,叫做《然后,就没有然后了……》 主贴是怀旧自己少不更事的青葱岁月:“ N年前某天我约了我刚表白没几天的mm一起出去吃宵夜,吃完宵夜又在校园里闲逛,然后送出了我的first kiss。
2012-05-20 21:40:39 1724
转载 让你的手机待机时间超过一个月
还在苦恼手机待机时间短么?还在痛苦手机每天一充么?请看一下方法,让您手机待机时间成倍增加!!! 1、为什么叫移动电话,为什么叫手机?因为这是用来打电话的,不是用来玩的,更不是用来听歌看电影的,甚至看电子书,每一次你的无关动作,会让手机的CPU满负荷运行,这样他就需要更多的电能,所以,请大家删除所有歌曲、所有电影、所有播放软件、所有应用软件包括浏览器,如果你需要这些应用,请多花点钱买
2012-05-19 13:29:06 1071 2
转载 超强的电脑高手
很久以前,那还是我用98系统的时候,我系统崩溃了。因为我是电脑白痴,我朋友给我介绍了一个高手来帮我修电脑。他看了一看电脑,问我有没有98的盘,我说没有。 他想了一下,叫我把固定电话拿给他,我想修电脑要电话干什么,但人家是高手,我也不好说什么,就把电话拔下来给他了。 他把电话线空着的一头接在电脑的一个插孔内,然后进入了dos,然后就开始在电话上不停的按着键,他按键的速度非常快,但是只按0,1两个键,
2012-05-19 13:28:17 747
转载 记忆
我把我们的记忆写入代码中, 并加密,让它做为我的秘密, 有一天,我想打开封存已久的记忆, 计算机弹出了提示框, 让我输入密码, 密码我已经忘记, 我决定对自己的程序进行反汇编, 越过了密码输入框, 我突然发现, 我使用的是不可逆加密算法对记忆进行加密。
2012-05-19 13:27:27 468
转载 Ada的故事(转自互联网)
多年前,美国军方要给一种计算机语言取个名字,大家提了许多动听的名字都觉的不太中意,后来有人提议,将这种计算机语言命名为:Ada。没有人提出异议。为什么大家都同意用这个名字呢?这还得从100多年前说起。Ada是一名充满幻想的女孩 1815年12月10日,英国。一个女孩降生了,她的母亲,一个有着杰出数学天赋的女人,人称“平行四边形公主”;父亲,一个狂热的充满幻想的诗人--拜伦
2012-05-19 13:26:25 833
原创 简易Web服务器
20100823-20100824 支持GET和POST两种HTTP请求,并附带一个远程执行CMD的页面(交互式动态网页)。其执行流程如下: 1.绑定本机IP的TCP-80端口; 2.死循环读取HTTP请求; 3.如果有请求则解析HTTP头(根据'\r''\n'和空格提取出name和text); 4.如果是GET请求
2012-05-19 13:15:35 1123 1
原创 机器视觉之运动识别
20100816-20100819 受到人工智能贴吧一位朋友的启发,用运动的物体(比如手掌)去控制赛车的左右移动。这是一个比较简单的算法,但的确很有效果。其实最开始我是想用人脸识别定位去控制赛车,但目前还没有想到一个好的算法。
2012-05-19 13:11:58 791
原创 Screen OCR(光学字符识别)
20100520-20100523 一个针对屏幕的OCR(光学字符识别)程序,它与印刷体和手写输入OCR的区别在于:屏幕OCR属于精确识别,识别速度较快,算法也较简单,但它只能识别屏幕(或者无损BMP)上的文字,。 该程序的默认字型库采用索引+Hash表组织,文件大小1.48M(未压缩),内含2580个字(汉字2500个+数字10个+字母52个+标点1
2012-05-19 13:10:29 5781 1
原创 Robocode(坦克大战)
20090519本来我们学校有一个Java机器人比赛,后来因为参赛人数过少就取消了。这个代码写的并不是很好,等以后闲下来再继续完善。package my;import java.awt.Color;import java.awt.geom.Point2D; import robocode.*;public class RoundSheep9 extends Advanced
2012-05-19 13:09:01 2324
原创 八数码(A* 735ms)
20091006比较经典的一个题目,下面是原题和我的代码。1077 EightTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 6197 Accepted: 2670 Special JudgeDescriptionThe 15-puzzle
2012-05-19 13:07:00 483
[人工智能-复杂问题求解的结构和策略(中文第6版)].(卢格).郭茂祖等.扫描版高清pdf
2018-03-19
山寨语言R++ V1.71
2014-03-20
山寨语言RPP_V1.7
2014-03-18
国产编程语言R++ V1.5
2013-06-28
新型编程语言 R++
2013-06-03
新型编程语言R++
2013-06-03
简单C语言编译器ucc源代码
2010-01-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人