注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

新型编程语言vala  

2016-01-09 14:15:20|  分类: 并行计算 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

        Vala是一种新的编程语言,其目标是为GNOME开发者提供现代化的编程语言功能,同时没有额外的运行时要求,并且相对于C语言编写的应用程序和库,无需使用不同的ABI。Vala是基于GNOME的GObject系统,提供了那种你期望的类功能。
        Vala使用类似C#的语法,编译过程是先转换成C源码( vala 是对c语言的一种高层封装,所以valac就会按照其语法规节转化出来c源码),然后使用标准的C编译器,生成二进制执行文件,这样编译出的文件,执行速度飞快。同时,这样的编译过程,对系统的编译环境要求很低,只要你的系统自带了C编译环境(这对于几乎任何系统都不成问题)。
        vala是专为gnome环境准备的开发语言,之所以vala会出现,是因为目前的glib,gio,gtk+,gnome-lib等等的C语言接口开发 起来实在太繁琐(这个深有感触),而同时,如果采用java,C++这些东西,那又显得太臃肿。
新型编程语言vala - itoedr - itoedr的it学苑
ubuntu软件源中收录的vala软件情况

          vala 是对c语言的一种高层封装,集成并实现了gnome环境的函数,在编译的时候首先vala代码会转成c代码,然后再编译。LUPA开源社区4WO$B- a7|4G["g-g这么做,相当于用简单的方 式来编写C程序,而且又有面向对象的特性,同时又不失C语言的优秀特性。

         与Scala(可直接支持并行编程)一样,在语言级别上,它具有与Java Beans的get*()和set*()等同的属性,但是,对于属性更改通知和监听器(listener),它也能够提供了语言级别上的支持。它不具备很强的XML处理能力,只是一个迷你型的解析器,不过看起来它的确具有很好的Unicode功能(字符串为UTF-8,string.getch()可返回16位的unichar字符。)在功能级别上,Vala与Java最大的不同之处应该是对象回收(de-allocation)的引用计数系统(reference-counting),相对于Java的GC,这一系统能够提供更多确定的实时行为,不过也为某些编程错误打开了一扇窗户。在这个时代,Vala的另一个古怪之处在于,对于阵列访问不进行边界检查,所以它比Java对规则的要求更为严格,相对于C语言要宽松很多。

vala编译过程
        vala 是对c语言的一种高层封装(主要是为了提高基于gnome的编程),集成并实现了gnome环境的函数,在编译的时候首先vala代码会转成c代码,然后再编译(也就是说vala的最后成果是c语言的成果,其高效性就可以肯定了)。
1.安装编译环境(ubuntu下)
sudo apt-get install valac
2. 参考编写"hello world"程序
    
using GLib;
public  class HelloVala: GLib.Object
{
   public static int main (string[] args)
 {
    stdout.printf ("Hello world!\n");
    return 0;
  }
}

3. 编译方法
    valac  -o a a.vala
     也就是说, vala 的编译器是valac。
4.运行即可。

新型编程语言vala - itoedr - itoedr的it学苑
一款支持vala编码的开发工具
附:vala编程手册>>>
  评论这张
 
阅读(39)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017