발라 (프로그래밍 언어)

프로그래밍 언어

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

발라
패러다임멀티 패러다임, 객체 지향, 구조화, 명령형, 제네릭
개발자Jürg Billeter, Raffaele Sandrini
발표일2006년
최근 버전0.57.0[1] 위키데이터에서 편집하기
최근 버전 출시일2023년 4월 11일(12개월 전)(2023년 4월 11일)
자료형 체계static, strong
운영 체제크로스 플랫폼 (GLib을 사용할 수 있는 모든 운영 체제)
라이선스LGPL 2.1+
파일 확장자.vala, .vapi
웹사이트wiki.gnome.org/Projects/Vala
영향을 받은 언어
C, C++, C#, D, 자바

발라는 문법적으로 자바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

같이 보기 편집

각주 편집

  1. “Release 0.57.0”. 2023년 4월 11일. 2023년 5월 4일에 확인함. 

외부 링크 편집