발라 (프로그래밍 언어)

발라()는 셀프 호스팅 컴파일러를 가진 객체 지향 프로그래밍 언어이다. 발라 컴파일러는 GObject 시스템을 사용하여 C 소스코드를 생성한다. 생성된 C 소스코드는 단지 발라 언어의 실행만을 위한 게 아니라 실제로 다른 C 언어 프로젝트에서도 사용할 수 있게끔 적절한 API를 가지고 있다.

발라는 문법적으로 자바나 C#과 비슷하며, 익명 함수, 시그널, 프로퍼티, 제네릭, 자동 메모리 관리, 예외 처리, 자료형 추론, foreach문 등의 기능을 제공한다.

예제

Hello world 프로그램 
void main (string[] args) {
    print("Hello World!");
}이 예제는 다음과 같이 객체 지향 방식으로도 작성될 수 있다.public class Sample : Object {
    static void main (string[] args) {
        print("Hello World!");
    }
}또한 아래와 같이 스크립트 형태로도 작성될 수 있다. 이는 실험적인 기능이며 암시적으로 main 메소드를 가지고 있다.print("Hello World!");

GUI 버전 Hello World 
GTK+를 사용한 예제이다
// hellogtk.vala
using Gtk;

void main (string[] args) {
    Gtk.init(ref args);

    var window = new Window();
    window.title = "Hello, World!";
    window.border_width = 10;
    window.window_position = WindowPosition.CENTER;
    window.set_default_size(350, 70);
    window.destroy.connect(Gtk.main_quit);

    var label = new Label("Hello, World!");

    window.add(label);
    window.show_all();

    Gtk.main ();
}

컴파일:
valac --pkg gtk+-3.0 hellogtk.vala

지원하는 문서 편집기 / IDE 
발라를 지원하는 편집기 중 일부의 목록이다.

 Anjuta
 Atom (language-vala-modern 패키지)
 GNOME Builder
 Emacs
 Euclide
 Geany
 MonoDevelop
 NetBeans
 RedCar
 Scratch
 Sublime Text
 TextMate
 Gedit
 Val(a)IDE (발라로 작성된 발라 편집기)
 Valable (이클립스 플러그인)
 Valama (발라로 작성된 발라 편집기)
 Valencia
 Vim
 Visual Studio Code

같이 보기 
 지니 : 발라 컴파일러가 해석할 수 있는 또 다른 언어이다. 파이썬과 비슷한 문법을 가지고 있다.
 엘리멘트리 OS : 발라를 사용하는 리눅스 배포판
 C 언어

각주

외부 링크 

 

객체 지향 프로그래밍 언어
C 프로그래밍 언어 계열
LGPL 라이선스 소프트웨어
크로스 플랫폼 자유 소프트웨어
소스 대 소스 컴파일러
정적 타입 프로그래밍 언어