用C#语言编写代码,实现两种语言转化 你們老師太牛了吧 這都行,是不是 你理解錯了,可能這個語言轉換是 簡體中文--->繁體中文--->英文 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 让机器将C++转换为Java是绝对做不到的,必须精通2种语言的人手工转换,里面很多方法必须变通着转。C#和F#转换是完全没问题的,只要是.NET语言,VB.NET、C++.NET、C#、F#都可以互相转换。 老师给了我们一个代码,那个有点变态,不管输什么进去,都是输出hello world。老师叫我们改代码,实现简单的转化。有大神帮忙做么,我可以把代码发给你。 就这种程度还是可以的作的。打开源文件,把c++代码全替换成java,然后调用java编译器,然后执行。 如:将C++转换为Java这例子你你们老师举的还是你自己举的?只能是C#转VB.NET这种的吧 如果你学过编译原理,可以利用antlr这个工具,在语法文件里定义转换规则,然后用antlr生成代码。楼上有人说了,c++自动转成java是不可能的,因为数据类型很多不匹配。老师的要求可能也只是针对一些简单的数据类型匹配的情况。下面简述一下思路,以C#转Java为例:首先下载C#的语法文件,开头几行改为:grammar cs;options { memoize=true; //output=AST; 缺省是生成抽象语法树,需要改成template,具体参考antlr的手册 output=template; rewrite=true;//加上这一句,直接生成转换后的代码 language=CSharp2;}下面是很多语法规则,举一条为例:namespace_declaration: 'namespace' qualified_identifier namespace_block ';'? ;改成:namespace_declaration@init{ StringBuilder sb = new StringBuilder();}: 'namespace' qualified_identifier namespace_block (t=';')? { sb.Append("package " + $qualified_identifier.text + $namespace_block.text + $t.text);}-> template(s={sb.ToString()}) "<s>" ;这样,一句C#的namespace声明语句就会被自动翻译成java的package语句(当然,C#的命名空间和java的命名完全不同,这里只是说明大致思路)antlr用来做语言自动翻译和代码静态分析工具很合适,花上几个星期研究一下,将受益匪浅。 public static void SaySomething(){ Console.WriteLine("请告诉我一些事情:"); string text = Console.ReadLine() // 你们老师昨晚一定是被女友蹬掉了 Console.WriteLine("你刚才说的是:hello world");} 同意楼上的一些人的观点,你们老师的脑袋肯定被驴踢了……实现转换真的是很难很难,我倒是很期望你们老师怎么做的,给我们也学习一下,上面这个代码,你想想吧,不管输进去什么,我都不管,我就输出个hello world 就是了……你们老师绝对是在忽悠你们啊,小子,赶快转专业 对,可以入手的路子是利用antlr,yacc这类词法分析工具,解出语法树,然后根据语法树做对应转换问题在c#和c++是两个不同语义的东西,最典型的比如,指针,内存申请,释放,这类工作,你在c#里就不怎么好替换了。所以,ls说如果你们老师真是这么要求滴,那么说脑袋被驴踢了我是同意滴 实际上我到时认为你们老师可能就是让你们学习一下有关词法分析,编译原理,BNF范式这类玩意如果真去做,那是非常困难滴。要知道即使SWIG,haxe这两个被经常提到的玩意,在经过这么多年的发展以后,然后只能算马马虎虎,聊胜于无!象征意义大于实用意义的东西 我现在也要写一个类似的代码,能不能把你之前写的代码发我一份。thank [email protected] 请教关于C#调用图片 中控指纹考勤机读取程序的发布问题 智能设备项目如何编译成windows窗体应用程序 .NET长文章内容分页(C#)问题? 父窗口关闭子窗口最简单实用的方法.不用这么复杂 聊天室(chat.csdn.net)进不去??? 请问可以用2003开发.net 2.0 的程序吗? 公司的程序需要加一个邮件发送功能,怎么加,请给个思路.谢谢! 关于 类似 QQ功能的问题! 如何由SQL的数据表生成XML,更新XML后再保存回SQL数据表 C#-winform 如何获取dataGridView选中当前行内第一个单元格内的值? 上下文菜单如何共享主菜单中的菜单项?
C#和F#转换是完全没问题的,只要是.NET语言,VB.NET、C++.NET、C#、F#都可以互相转换。
就这种程度还是可以的作的。
打开源文件,把c++代码全替换成java,然后调用java编译器,然后执行。
这例子你你们老师举的还是你自己举的?只能是C#转VB.NET这种的吧
memoize=true;
//output=AST; 缺省是生成抽象语法树,需要改成template,具体参考antlr的手册
output=template;
rewrite=true;//加上这一句,直接生成转换后的代码
language=CSharp2;
}下面是很多语法规则,举一条为例:
namespace_declaration:
'namespace' qualified_identifier namespace_block ';'? ;
改成:
namespace_declaration
@init
{
StringBuilder sb = new StringBuilder();
}:
'namespace' qualified_identifier namespace_block (t=';')?
{ sb.Append("package " + $qualified_identifier.text + $namespace_block.text + $t.text);}
-> template(s={sb.ToString()}) "<s>" ;这样,一句C#的namespace声明语句就会被自动翻译成java的package语句(当然,C#的命名空间和java的命名完全不同,这里只是说明大致思路)
antlr用来做语言自动翻译和代码静态分析工具很合适,花上几个星期研究一下,将受益匪浅。
{
Console.WriteLine("请告诉我一些事情:");
string text = Console.ReadLine()
// 你们老师昨晚一定是被女友蹬掉了
Console.WriteLine("你刚才说的是:hello world");
}