• Vala是什么?

Vala官方网站对它的描述:

Compiler for the GObject type system

Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.

百度百科对Vala的描述:

Vala是一种新的编程语言,其目标是为GNOME开发者提供现代化的编程语言功能,同时没有额外的运行时要求,并且相对于C语言编写的应用程序和库,无需使用不同的ABI。

我个人的认识:

Vala是对C语言的高级封装,拥有C#(其实和JAVA也基本相同啊)的形,C语言的魂。所谓高级、形,即是面向对象;而魂,则是说Vala编译器先把Vala代码转换成C代码,再编译成机器码。另外,官方介绍中提到了ABI这个概念,与常见的API是不同的。API(Application Program Interface)是对代码进行约束,比方说.JAVA文件的文件结构是什么样的,类对外提供了哪些方法供别人调用;ABI(Application Binary Interface)是对最终的执行码进行约束,比方说Java中class文件的文件结构,调用指令,或者说linux下可执行程序elf的文件内容约束。

  • 在Windows下安装Vala
  1. 下载Vala IDE。最新版本为Valide 0.7.1。在安装Vala IDE的过程中,可以选择自动下载并安装Vala以及MinGW(minimalist GNU environment for Windows,MinGW提供了GNU C Compiler),也可以手动下载安装vala。
  2. 下载libgee。libgee提供了非常丰富的容器类和接口,比如ArrayList, HashSet, HashMap等等。下载后直接把包中的include、lib、bin、share目录解压到vala安装目录下,覆盖原有的include、lib、bin、share目录。
  3. 下载MinGW API for MS-Windows。下载后直接把包中的include、lib目录解压到vala安装目录下,覆盖原有的include,lib目录。如果不安装这个MinGW API,在编译使用到GTK的程序时,会报不能加载libcomdlg32的错误。
  • HelloWorld!

public class Main{ public static int main (string[] args) { print("Hello World~~0.12/n"); return 0; } }

编译代码,运行程序:

valac HelloWorld.vala HelloWorld.exe

  • 有趣的事情:
  1. 上述HelloWorld程序的vala文件名和类名并不一致!
  2. 有一个名叫vala的微博网站,不知道在国内的微博大战中能否有立足之地?

Vala学习笔记(一) - HelloWorld!相关推荐

  1. Spring MVC 学习笔记一 HelloWorld

    Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...

  2. MOOS学习笔记1——HelloWorld

    MOOS学习笔记1--HelloWorld 例程 /* * @功能:通讯客户端的最简单程序,向MOOSDB发送名为"Greeting" * 数据"Hello", ...

  3. 【FastDDS学习笔记】HelloWorld示例程序编译和运行

    目录 第一章:[FastDDS学习笔记]Ubuntu22上安装fastDDS环境 第二章:[FastDDS学习笔记]HelloWorld示例程序编译和运行 第三章:[FastDDS学习笔记]Fast- ...

  4. Cocos2d-x 学习笔记一 HelloWorld

    最近刚刚开始学习cocos2d-x,本身自己就是小菜外加从未涉足过游戏引擎方面,而相关的C++版本学习教程并不多,自学起来很是费力啊! 首先是引擎相关的最基本概念,参见http://leeyin.it ...

  5. nodejs学习笔记-入门helloworld

    2019独角兽企业重金招聘Python工程师标准>>> 什么是nodejs? Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快. ...

  6. python编译helloworld_python3学习笔记--001--python HelloWorld

    python默认使用UTF-8编码 一个python3版本的HelloWorld代码如下: #!/usr/bin/env python print ('Hello World!') 如果此python ...

  7. Objective-C 学习笔记1 HelloWorld

    1.打开xcode(4.2) 2.选择 Create a new Xcode project 3.选择 os x下的 application 4.选择右边的Command Line Tool 5.点[ ...

  8. Griffon学习笔记1 - HelloWorld

    参考文章:[url]http://morry.iteye.com/blog/804768[/url] [img]http://dl.iteye.com/upload/attachment/348337 ...

  9. 不忘初心helloworld,IMX6入门学习笔记

    本文按照时间学习的先后顺序,入门体验了知名半导体厂商NXP的著名处理器--IMX6. 无论你是否有基础,都能按照流程学会软件使用和交叉编译方法,老规矩:看不懂算我的. 了解开发板 官方资料链接: ht ...

最新文章

  1. Objective-C中的内存管理
  2. 【Android 插件化】Hook 插件化框架 ( 从源码角度分析加载资源流程 | Hook 点选择 | 资源冲突解决方案 )
  3. 为指针分配的内存太小
  4. (原創) 如何讓P7010外接螢幕支援1440x900(WXGA+)? (NB) (P7010)
  5. Ubuntu命令行下安装、卸载、管理软件包的方法
  6. java模拟器apk闪退_急,求帮助,eclipse生成apk安装以后闪退
  7. 用二维数组实现矩阵转置
  8. Java读取json文件,再生产新的json文件
  9. bShare一个强大的网页分享插件
  10. 基于微服务和Docker容器技术的PaaS云平台架构设计
  11. 如何让caffe读取多通道图片(=4)
  12. 面向对象思想,简单实例
  13. keil4 破解心得
  14. java 字节 占多少位_JAVA各种类型各占多少字节,多少位
  15. McAfee Epo
  16. python抢票脚本github_GitHub标星超12K,抢票神器大更新,支持候补!
  17. project 2016软件
  18. 论如何举办一个承载400人的比赛(XUPT新生赛承办小记)
  19. python欧拉螺线_基于菲涅耳积分的Python OpenDrive地图螺旋线/回旋线/欧拉螺旋线/Cornu螺旋线插值...
  20. Word 2010 找不到 Endnote选项

热门文章

  1. 说英语的思路(狂飙版)
  2. app中的webview是什么?如何理解?
  3. android中的WebView是什么??
  4. CODE【VS】1553 互斥的数(hash表+map函数)
  5. golang微信机器人_如何使用Golang从头开始创建Twitter机器人
  6. 【函数】oracle translate() 详解+实例
  7. redis存储对象和集合
  8. asp现场抽奖,asp微信现场抽奖功能代码
  9. 惠普战66 Pro G1 笔记本电脑的重装系统详细过程
  10. 百度语音识别学习笔记