발라 (프로그래밍 언어)

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

발라(영어: 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

같이 보기[편집]