발라 (프로그래밍 언어)

위키백과, 우리 모두의 백과사전.
둘러보기로 가기 검색하러 가기
발라
패러다임 멀티 패러다임, 객체 지향, 구조화, 명령형, 제네릭
발표년도 2006년
개발자 Jürg Billeter, Raffaele Sandrini
최근 버전 0.40.1
최근 버전 출시일 2018년 3월 26일 (3달 전)(2018-03-26)
자료형 체계 static, strong
영향을 받은 언어 C, C++, C#, D, 자바
운영 체제 크로스 플랫폼 (GLib을 사용할 수 있는 모든 운영 체제)
라이선스 LGPL 2.1+
사용 중인 파일 확장자 .vala, .vapi
웹사이트 wiki.gnome.org/Projects/Vala

발라(영어: Vala)는 셀프 호스팅 컴파일러를 가진 객체 지향 프로그래밍 언어이다. 발라 컴파일러는 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

같이 보기[편집]