首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

用了一周时间在Linux就学会了一门新的编程语言vala叽哩哇啦,该如何处理

2012-01-05 
用了一周时间在Linux就学会了一门新的编程语言vala叽哩哇啦用了一周时间在Linux就学会了一门新的编程语言v

用了一周时间在Linux就学会了一门新的编程语言vala叽哩哇啦
用了一周时间在Linux就学会了一门新的编程语言vala叽哩哇啦

Vala 是使用类似 C# 的语法,应该比用 C 写轻松的多。Vala 编译的时候,会把 Vala 程序编译成 C 代码,然后再使用 C 编译器编译成本机代码,我最近觉得这种编译方式很好,因为现在而言,几乎任何一个系统,不论是 PC 的,还智能手机,抑或嵌入式设备,总会至少提供一个 C 的编译器,那么把程序先编译成 C 就等于在这些系统上都可以运行了。



代码如下:
  //别看错了哦,这可不是C#,这是一个新的语言叫哇啦
  int main (string[] args) {

  // Output the number of arguments
  stdout.printf ("%d command line argument(s):\n", args.length);

  // Enumerate all command line arguments
  foreach (string arg in args) {
  stdout.printf ("%s\n", arg);
  }

  // Exit code (0: success, 1: failure)
  return 0;
}

直接编译成纯C语言代码


代码如下:
/* main.c generated by valac 0.14.0, the Vala compiler
* generated from main.vala, do not modify */

/*别看错了哦,这可不是C#,这是一个新的语言叫哇啦*/

#include <glib.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

#define _g_free0(var) (var = (g_free (var), NULL))

gint _vala_main (gchar** args, int args_length1);

gint _vala_main (gchar** args, int args_length1) {
gint result = 0;
FILE* _tmp0_;
gchar** _tmp1_;
gint _tmp1__length1;
gchar** _tmp2_;
gint _tmp2__length1;
#line 5 "/media/disk i_/working/vala/test1/test1/main.vala"
_tmp0_ = stdout;
#line 5 "/media/disk i_/working/vala/test1/test1/main.vala"
_tmp1_ = args;
#line 5 "/media/disk i_/working/vala/test1/test1/main.vala"
_tmp1__length1 = args_length1;
#line 5 "/media/disk i_/working/vala/test1/test1/main.vala"
fprintf (_tmp0_, "%d command line argument(s):\n", _tmp1__length1);
#line 8 "/media/disk i_/working/vala/test1/test1/main.vala"
_tmp2_ = args;
#line 8 "/media/disk i_/working/vala/test1/test1/main.vala"
_tmp2__length1 = args_length1;
#line 39 "main.c"
{
gchar** arg_collection = NULL;
gint arg_collection_length1 = 0;
gint _arg_collection_size_ = 0;
gint arg_it = 0;
#line 8 "/media/disk i_/working/vala/test1/test1/main.vala"
arg_collection = _tmp2_;
#line 8 "/media/disk i_/working/vala/test1/test1/main.vala"
arg_collection_length1 = _tmp2__length1;
#line 8 "/media/disk i_/working/vala/test1/test1/main.vala"
for (arg_it = 0; arg_it < _tmp2__length1; arg_it = arg_it + 1) {
#line 51 "main.c"
gchar* _tmp3_;
gchar* arg = NULL;
#line 8 "/media/disk i_/working/vala/test1/test1/main.vala"
_tmp3_ = g_strdup (arg_collection[arg_it]);
#line 8 "/media/disk i_/working/vala/test1/test1/main.vala"
arg = _tmp3_;
#line 58 "main.c"
{
FILE* _tmp4_;
const gchar* _tmp5_;
#line 9 "/media/disk i_/working/vala/test1/test1/main.vala"
_tmp4_ = stdout;
#line 9 "/media/disk i_/working/vala/test1/test1/main.vala"
_tmp5_ = arg;
#line 9 "/media/disk i_/working/vala/test1/test1/main.vala"
fprintf (_tmp4_, "%s\n", _tmp5_);
#line 8 "/media/disk i_/working/vala/test1/test1/main.vala"
_g_free0 (arg);
#line 70 "main.c"
}
}
}
#line 13 "/media/disk i_/working/vala/test1/test1/main.vala"
result = 0;
#line 13 "/media/disk i_/working/vala/test1/test1/main.vala"
return result;
#line 78 "main.c"
}


int main (int argc, char ** argv) {
#line 2 "/media/disk i_/working/vala/test1/test1/main.vala"
g_type_init ();
#line 2 "/media/disk i_/working/vala/test1/test1/main.vala"
return _vala_main (argv, argc);
#line 87 "main.c"


}



直接编译成可执行文件,类似windows下的exe


输出结果如下:
linux-zk9e:~ # '/root/output/vala/test1' "hello csdner"
2 command line argument(s):
/root/output/vala/test1
hello csdner
linux-zk9e:~ #

Vala 是使用类似 C# 的语法,应该比用 C 写轻松的多。Vala 编译的时候,会把 Vala 程序编译成 C 代码,然后再使用 C 编译器编译成本机代码,我最近觉得这种编译方式很好,因为现在而言,几乎任何一个系统,不论是 PC 的,还智能手机,抑或嵌入式设备,总会至少提供一个 C 的编译器,那么把程序先编译成 C 就等于在这些系统上都可以运行了。


【开源】分布式可编程的云平台,可大规模开展Web服务开发,期待专家点评
开源:完全自主研发搜索引擎1.0源代码及说明,单机400万网页,任意50词以内的检索不超过 20毫秒
天心天字辈ERP全部PDK源代码到了我手上的后果 - 超越天心之WEB天云
在Linux上开发.NET、Delphi、C心情真爽


[解决办法]
不少语言都有转到c,再到可执行程序。smalltalk
[解决办法]
很好 有空我也研究一下
[解决办法]
不懂的路过!
[解决办法]
我看二楼的
[解决办法]
我来看楼下解释的
[解决办法]
学习的
[解决办法]
不懂。。。。
[解决办法]
恭喜楼主 贺喜楼主
[解决办法]
真的不错。。可惜我不会C啊
[解决办法]
这个语言有创意
[解决办法]
这个语言有创意
[解决办法]
呵呵,楼主厉害,学习了

祝楼主好运
[解决办法]
這2樓和樓主是什么關系捏?
[解决办法]
這2樓和樓主是什么關系捏?
[解决办法]
這2樓和樓主是什么關系捏?
[解决办法]

探讨

這2樓和樓主是什么關系捏?

[解决办法]
我不认识楼主
[解决办法]
这个语言很有创意啊
[解决办法]
vagaa??
[解决办法]
探讨
引用:

這2樓和樓主是什么關系捏?

明显是一个人2个号。。经过鉴定就是炫耀贴

[解决办法]

[解决办法]
支持啊,看起来挺不错的
[解决办法]
叽哩哇啦,唧唧歪歪
[解决办法]
那么它和 C / C++ / # 有什么区别呢?
搞出这么多相近的语言有什么意义呢?
[解决办法]

[解决办法]
叽哩哇啦,唧唧歪歪
[解决办法]
哇,这就是我想到的语言啊
------解决方案--------------------


探讨

哇,这就是我想到的语言啊

[解决办法]

[解决办法]

[解决办法]
一周时间可以学会一门语言?
估计楼主以前某种语言的编程功底了得吧
[解决办法]
学习,收藏!
[解决办法]
为什吗我们不学c#就学java?
[解决办法]
值得收藏
[解决办法]
哇啦 干嘛不叫 干嘛
[解决办法]
顶一下贴,打一下酱油
[解决办法]
没用过,新东西太多。
[解决办法]
vala作用什么开放的哦,scalar更不错将替代java
[解决办法]
刚才看了一下,vala语言确实不错

热点排行