5种语言混合编程:C++、JS、python、Lisp、汇编
/*
混合C++、JS、python、Lisp、汇编
1种语言,5种语法
*/ main
{
//C++
vector<int> 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,91};
putsl(a[1]); //python
b=2
if b==2
putsl 1
putsl 2
elif b==3
putsl 99 //Lisp
[= b 3]
[rf printl b]
[= b [+ 1 3]]
[rf printl b] //汇编
mov b,4
add b,5
putsl(b)
}
输出是:
4
abc
6
91
1
2
3
4
9
RPP已经成功从C++内核升级到了lisp内核,欢迎下载试用。
光速编译,无限可能,尽在RPP。(音up)
/*
控制台贪食蛇
*/ int g_std_out
rbuf<int> g_arr
int g_next=10
int g_food void main()
{
g_std_out=stdcall("GetStdHandle",-11)
g_arr.push(105) CONSOLE_CURSOR_INFO cur_info
cur_info.dwSize=1
cur_info.bVisible=0
stdcall("SetConsoleCursorInfo",g_std_out,&cur_info)
rf.cmd("mode con cols=66 lines=35") init
rf.srand
start=rf.tick
food for
key
if rf.tick-start<100
continue
start=rf.tick
ifn check
return
g_arr.push_front(g_arr[0]+g_next)
if g_food!=g_arr[0]
g_arr.pop
else
food
update
} void gotoxy(int x,int y)
{
COORD pos
pos.x=x
pos.y=y
int temp
mov temp,pos
stdcall("SetConsoleCursorPosition",g_std_out,temp)
} void update()
{
for i=0 to 199
gotoxy(i%10+1,i/10+1)
if g_arr.exist(i)
puts("O")
elif i==g_food
puts("$")
else
puts(" ")
} void init()
{
for i=0 to 11
for j=0 to 21
if i==0||i==11||j==0||j==21
gotoxy(i,j)
puts("#")
} void key()
{
if stdcall("GetAsyncKeyState",0x26)
temp=-10
elif stdcall("GetAsyncKeyState",0x28)
temp=10
elif stdcall("GetAsyncKeyState",0x25)
temp=-1
elif stdcall("GetAsyncKeyState",0x27)
temp=1
else
return
if g_arr.count<2||g_arr.get(1)!=g_arr.get(0)+temp
g_next=temp
} int check()
{
temp=g_arr[0]+g_next
if temp<0||temp>199||int.abs(temp%10-g_arr[0]%10)>1||g_arr.exist(temp)
stdcall("MessageBoxA",0,('over len '+g_arr.count).cstr,"",0)
return false
return true
} void food()
{
g_food=rf.rand()%200
if g_arr.exist(g_food)
food
} struct CONSOLE_CURSOR_INFO
{
int dwSize
bool bVisible
} struct COORD
{
ushort x
ushort y
}
以下是一个彩色版本号:
/*
彩色版控制台贪食蛇
*/ int g_std_out
rbuf<int> g_arr
int g_next
int g_food void main()
{
begin:
init
start=rf.tick
for
key
if rf.tick-start<100
continue
start=rf.tick
ifn check
goto begin
g_arr.push_front(g_arr[0]+g_next)
if g_food!=g_arr[0]
g_arr.pop
else
food
update
} void update()
{
for i=0 to 199
gotoxy(i%10*2,i/10)
if g_arr.exist(i)
out("■")
elif i==g_food
out("★")
else
puts(" ")
} void init()
{
rf.srand
g_std_out=stdcall("GetStdHandle",-11)
g_next=10
g_arr.clear
g_arr.push(105)
food CONSOLE_CURSOR_INFO cur_info
cur_info.dwSize=1
cur_info.bVisible=0
stdcall("SetConsoleCursorInfo",g_std_out,&cur_info)
rf.cmd("mode con cols=20 lines=22")//保留一行留给输入法 stdcall("SetConsoleTextAttribute",g_std_out,0x0a)
gotoxy(0,20)
puts(" ******************")
} void key()
{
if stdcall("GetAsyncKeyState",0x26)
temp=-10
elif stdcall("GetAsyncKeyState",0x28)
temp=10
elif stdcall("GetAsyncKeyState",0x25)
temp=-1
elif stdcall("GetAsyncKeyState",0x27)
temp=1
else
return
if g_arr.count<2||g_arr.get(1)!=g_arr.get(0)+temp
g_next=temp
} bool check()
{
temp=g_arr[0]+g_next
if temp<0||temp>199||int.abs(temp%10-g_arr[0]%10)>1||g_arr.exist(temp)
stdcall("MessageBoxA",0,('over len '+g_arr.count).cstr,"",0)
return false
return true
} void food()
{
g_food=rf.rand()%200
if g_arr.exist(g_food)
food
} void out(char* s)
{
puts(rcode.utf8_to_gbk(s))
} void gotoxy(int x,int y)
{
COORD pos
pos.x=x
pos.y=y
stdcall("SetConsoleCursorPosition",g_std_out,pos)
} struct CONSOLE_CURSOR_INFO
{
int dwSize
bool bVisible
} struct COORD
{
ushort x
ushort y
}
5种语言混合编程:C++、JS、python、Lisp、汇编的更多相关文章
- 【转载】ANSYS的APDL与C语言混合编程(实例)
原文地址:http://www.cnblogs.com/lyq105/archive/2010/05/04/1727557.html 本文讨论的不是利用C语言为ANSYS写扩展(或者说是用户子程序), ...
- Java语言与C语言混合编程(2)--在Java中调用C语言本地库
在上一篇文章中介绍了Java语言中的native关键字,以及Java语言调用C语言的编译生成本地动态链接库(DLL)实现加法运算的小例子,本文通过一个更加详细的例子,深入讲解Java语言调用C语言的函 ...
- Java语言与C语言混合编程(1)--Java native 关键字
一. 什么是 native Method 简单地讲,一个 native Method 就是一个java调用非java代码的接口.一个 native Method 是这样一个java的方法:该方法的实现 ...
- Android程序中,内嵌ELF可执行文件-- Android开发C语言混合编程总结
前言 都知道的,Android基于Linux系统,然后覆盖了一层由Java虚拟机为核心的壳系统.跟一般常见的Linux+Java系统不同的,是其中有对硬件驱动进行支持,以避开GPL开源协议限制的HAL ...
- Swift 与 C 语言混合编程
前言 作为一种可与 Objective-C 相互调用的语言,Swift 也具有一些与 C 语言的类型和特性,如果你的代码有需要,Swift 也提供了和常见的 C 代码结构混合编程的编程方式. 1.基本 ...
- Dart 调用C语言混合编程
Dart 调用C语言本篇博客研究Dart语言如何调用C语言代码混合编程,最后我们实现一个简单示例,在C语言中编写简单加解密函数,使用dart调用并传入字符串,返回加密结果,调用解密函数,恢复字符串内容 ...
- SQL+C#:一次多语言混合编程的经验总结
1.用JAVA做,采取轮询策略: 2.用sql语言+C#混合编程,采取触发策略
- Swift语言与Objective-C语言混合编程
首先创建一个Swift的Single View工程 然后直接在工程中新建OC文件: 然后选择OC语言之后会问你是否自动创建OC和Swift的中间文件: 然后工程文件夹里就有了三个文件: 现在OC头文件 ...
- Matlab和C语言混合编程,包含目录的设定
如果.c文件不依赖于任何第三方库,那么mex编译很简单,只需要在matlab的命令行输入 mex test.c 即可. 但是如果这个c文件使用了第三方库文件,如opencv.gsl等等,那么就需要更改 ...
随机推荐
- 杭电(hdu)ACM 4548 美素数
美素数 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Submis ...
- JBoss vs. Tomcat
JBoss 支持Servlet.Web Server和其它J2EE Features Servlet引擎使用Tomcat的内核 SSL性能比Tomcat快4倍(据说) 支持.net.PHP.CGI 支 ...
- Oracle学习(11):PLSQL程序设计
PL/SQL程序结构及组成 什么是PL/SQL? •PL/SQL(Procedure Language/SQL) •PLSQL是Oracle对sql语言的过程化扩展 •指在SQL命令语言中添加了过程处 ...
- C++ 浅析 STL 中的 list 容器
list - 擅长插入删除的链表 链表对于数组来说就是相反的存在. 数组本身是没有动态增长能力的(程序中也必须又一次开辟内存来实现), 而链表强悍的就是动态增长和删除的能力. 但对于数组强悍的随机訪问 ...
- PBKDF2加密的实现
PBKDF2(Password-Based Key Derivation Function). 通过哈希算法进行加密.由于哈希算法是单向的,能够将不论什么大小的数据转化为定长的"指纹&quo ...
- UVA - 1642 Magical GCD 数学
Magical GCD The Magical GCD of a nonempty sequence of positive integer ...
- Spark SQL 编程API入门系列之SparkSQL的入口
不多说,直接上干货! SparkSQL的入口:SQLContext SQLContext是SparkSQL的入口 val sc: SparkContext val sqlContext = new o ...
- JS中浮点数相加问题
https://blog.csdn.net/u012937029/article/details/61191512 采用IEEE 754 Floating-point的浮点数编码方式来表示浮点数 按I ...
- css样式表格边框1px hover时为2px 实现方式
//css .flclass-cont .flclass-cont-box{width:%;display:inline-block;font-size:;margin:10px;position:r ...
- C# 正则表达式大全(转载)
文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...