Genie(프로그래밍 언어)

Genie (programming language)
지니
패러다임멀티플렉스: 명령형, 구조화, 객체 지향형
설계자제이미 맥크라켄
처음 등장한2008년, 14년 전(2008년)
안정된 릴리스
0.52.3 / 2021년 5월 1일; 15개월 전(2021-05-01)
타이핑 분야정적, 강력
OS크로스 플랫폼(GLib에서 지원되는 모든 플랫폼)
면허증.LGPLv2.1+
파일 이름 확장자.gs
웹 사이트wiki.gnome.org/Projects/Genie Edit this at Wikidata
영향을 받다
Python, Boo, D, 객체 파스칼

지니(Genie)는 [1]2008년부터 개발 중인 현대적이고 범용적인 고급 프로그래밍 언어입니다.Vala 컴파일러의 대체적이고 단순하며 깨끗한 방언으로 설계되었으며 Vala 언어의 동일한 기능을 유지합니다.Genie는 Vala와 같은 컴파일러와 라이브러리를 사용합니다.이 두 가지를 [2]동시에 사용할 수 있습니다.그 차이는 통사적인 것일 뿐이다.

Genie의 구문은 Python, Boo, D, Delphi같은 수많은 현대 언어에서 파생되었다.Python의 맥락에서 Genie는 명시적인 블록 구분자(예: 곱슬 괄호)가 아닌 들여쓰기를 사용하여 블록을 구분합니다.

Vala와 마찬가지로 Genie는 GObject 유형 시스템을 사용하여 Genie 소스 코드에서 선언된 클래스와 인터페이스를 추가 런타임 요구 사항 없이 만듭니다(즉, Python, Java 또는 C#과 달리 가상 머신이 필요하지 않음).

Genie는 다른 ABI(Application Binary Interface)를 사용하지 않고 특히 GTK와 같은 GObject 기반 라이브러리에 액세스할 수 있도록 합니다.컴파일 중에 코드는 먼저 C 소스 파일과 헤더 파일로 변환되며, 그 후 GCC와 같은 사용 가능한 C 컴파일러를 사용하여 플랫폼 고유의 머신 코드로 컴파일됩니다.따라서 크로스 플랫폼소프트웨어 개발이 가능합니다.

Vala와 Genie에서 개발된 프로그램은 GNOME 데스크톱 환경에 의존하지 않으며 보통 GLib만 필요합니다.

코드 샘플

'헬로 월드'

이 샘플에서는 들여쓰기에 4개의 공간을 명시적으로 사용하고 있습니다.

[hello=4] init print "안녕하세요, 세상!"

물건들

명시적 들여쓰기 선언이 없는 경우 기본값은 탭입니다.

클래스 샘플 def run() stdout.printf("Hello, world!"\n ") init var sample = new Sample() sample.run()

비판

2013년 현재 Genie for loops는 빈 목록을 처리하는 [3]데 번거로운 기능을 포함하고 있습니다.

변화하다 l = 신규 목록.  스트링 한다면 l.크기 > 0     위해서 변화하다 i = 0 로. (l.크기 - 1)         인쇄물 l.@얻다(i) 

단, 목록은 for-in 구성을 사용하여 쉽고 [4]쉽게 반복할 수 있습니다.

변화하다 l = 신규 목록.  스트링 위해서 s  l:    인쇄물 s 

레퍼런스

  1. ^ Jamie McCracken (2008). "Introducing Genie - the smart programming language". Archived from the original on 2011-08-18.
  2. ^ Genie와 Vala를 함께 사용
  3. ^ Tal Liron (11 January 2013). Genie. Event occurs at 32:29. Archived from the original on 2021-12-20.
  4. ^ "Projects/Genie - GNOME Wiki!".

외부 링크