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等等,那么就需要更改 ...
随机推荐
- httpurlconnection get String
public static String getJSON(String url, int timeout) { HttpURLConnection c = null; try { long reque ...
- 使用Swift和SpriteKit写一个忍者游戏
这篇文章的游戏使用SpriteKit和Swift语言来完毕. SpriteKit是苹果自己的游戏引擎,更能贴合iOS系统底层的API,只是架构和实现上都是模仿了Cocos2D.所以使用上事实上区别不大 ...
- [iOS翻译]《iOS7 by Tutorials》在Xcode 5里使用单元測试(上)
简单介绍: 单元測试是软件开发的一个重要方面.毕竟,单元測试能够帮你找到bug和崩溃原因,而程序崩溃是Apple在审查时拒绝app上架的首要原因. 单元測试不是万能的,但Apple把它作为开发工具包的 ...
- ios-UI-汤姆猫德游戏实现
// // ViewController.m // UI-猜拳游戏 // // Created by jzq_mac on 15/7/15. // Copyright (c) 2015年 jz ...
- Struts2 的工作原理
Struts2 的工作原理: 1)client向server发出一个http请求.webserver对请求进行解析,假设在StrutsPrepareAndExecuteFilter的请求映射路径(在w ...
- oracle init.ora常用配置详解
参考网上整理了重要的配置文件 db_name = "51cto" 一个数据库标识符,应与CREATE DATABASE 语句中指定的名称相对应. instance_name = ...
- 【HDU 2176】 取(m堆)石子游戏
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=2176 [算法] Nim博弈 当石子数异或和不为0时,先手必胜,否则先手必败 设石子异或和为S 如果 ...
- 视图 Model转集合
@{ Layout = null;}@using MvcApplication2.Models <!DOCTYPE html> <html><head> ...
- JavaScript实现乘法表
JavaScript实现乘法表 <script type="text/javascript"> function c(n,m) { ...
- 「JavaSE 重新出发」05.01.01 equals 方法
equals 方法示例 // 代码来自<Java核心技术 卷I>P167 // 父类 public class Employee{ ... public boolean equals(Ob ...