nelua.io
NELUA ( N Ative extensible LUA 의 약자)는 LUA에서 영감을 얻은 최소하고 효율적이며 정적으로 정적이며 메타 프로그래밍 가능한 시스템을 프로그래밍하여 C 및 기본 코드로 컴파일합니다.
참고 : 언어는 알파 상태에 있으며 여전히 진화하고 있습니다.
#showcase 채널을 확인하십시오.설치 한 후 유명한 SDL2 라이브러리를 활용하는 뱀 게임 인 주요 예제를 확인할 수 있습니다.
nelua examples/snakesdl.neluaNELUA는 운영 체제, 실시간 응용 프로그램 및 게임 엔진과 같이 LUA가 효율적이지 않은 성능에 민감한 애플리케이션을위한 시스템 프로그래밍 언어입니다. LUA와 유사한 구문 및 시맨틱은 주로 효율적인 C 코드를 생성하는 데 중점을두고 최적화 할 수있는 저수준 프로그래밍을 지원합니다. 레코드, 어레이, 수동 메모리 관리 및 포인터와 같은 Nelua 관용구를 사용하면 순수한 C만큼 효율적으로 성능을 제공해야합니다. 반면, 테이블, 메타 테이블 및 비 유형 변수와 같은 LUA 관용구를 사용할 때 컴파일러는 이러한 종류의 동적 기능에 대한 런타임 라이브러리를 프로그램에 제출하여 일부 런타임 오버 헤드가 발생할 수 있습니다.
NELUA는 LUA에 작성된 전처리 제작을 통해 컴파일 시간에 메타 프로그래밍을 수행 할 수 있습니다. 컴파일러 자체는 LUA로도 작성되므로 사용자가 제공 한 전처리 코드는 컴파일러의 내부 및 소스 코드의 AST와 어느 시점에서든 상호 작용할 수 있음을 의미합니다. 이러한 시스템을 사용하면 클래스, 제네릭 및 다형성과 같은 고급 구조물을 핵심 사양에 추가하지 않고도 언어를 간단하고 확장 가능하며 컴팩트하게 유지할 수 있습니다. LUA의 객체 지향 패턴이 언어에 내장되어 있지 않지만 그럼에도 불구하고 메타 타블을 통해 달성 될 수있는 방식과 마찬가지로 NELUA에서는 Compile Time에서 완전히 결정되거나 런타임에 동적으로 파견되는 유사한 기능을 구현할 수 있습니다.
프로그래머는 새로운 문법, AST 정의, 의미론, 유형 체커, 코드 생성 및 컴파일러에 대한 컴파일 타임에 대한 컴파일러에 대한 언어에 확장을 추가 할 수 있으므로 Nelua는 확장 가능한 프로그래밍을 수행 할 수 있습니다.
NELUA는 개발자가 쓰레기 수집을 사용하거나 쓰레기 수집을 완전히 비활성화하거나 두 가지를 혼합하는 중에서 쉽게 선택할 수있는 방식으로 쓰레기 수집 및 수동 메모리 관리에 대한 지원을 제공합니다.
NELUA는 먼저 C로 컴파일 한 다음 C 컴파일러를 실행하여 기본 코드를 생성합니다. 이러한 방식으로 기존 C 코드 및 라이브러리를 활용할 수 있으며 새로운 C 라이브러리를 만들 수 있습니다. 또 다른 이점은 NELUA가 GCC 또는 Clang과 같은 C99 컴파일러와 동일한 대상 플랫폼에 도달하면서 제공하는 최첨단 컴파일러 최적화를 즐기는 것입니다.
그 창조에 대한 초기 동기는 현재 LUA를 사용하는 프로젝트의 C/C ++ 부분을 LUA와 유사한 구문 및 의미론을 가진 언어로 대체하는 것이었지만, 세밀한 성능 최적화를 허용하고 낮은 수준으로 올라갈 수있는 능력을 잃지 않으므로 컴파일 된 언어와 동적 언어 전체에서 구문과 반역을 통합하는 것이 었습니다.
여러 가지 방법으로 Nelua를 지원하거나 기여할 수 있으며 프로젝트에 Github에 대한 스타를 제공하고, 기능 테스트, 버그보고, 아이디어에 대해 토론, 다른 사용자를 돕고, Github에서 만들어진 프로젝트를 공유하고, 튜토리얼 또는 블로그 게시물을 만들고, 문서를 개선하거나 기부 또는 후원을 통해 공유 할 수 있습니다.
NELUA는 오픈 소스이지만 핵심 언어로 고정되거나 구현 된 무언가를 원한다면 먼저 버그 보고서를 제출하거나 PR을 수행하는 대신 토론을 시작하려면 풀 요청의 형태로 기부 할 수 없습니다. 저자는이 방법을 선호하므로 프로젝트에 대한 원치 않는 결과없이 이상적인 솔루션이 항상 제공되므로 소프트웨어의 품질을 유지합니다.
기고 페이지에서 기여한 방법에 대해 자세히 알아보십시오.
MIT 라이센스