네코VM

NekoVM
네코VM
NekoVM logo
원본 작성자니콜라스 카나스세
개발자
초기 릴리즈2005; 17년 전(2005)
안정적 해제
2.3.0 / 2019년 10월 24일; 2년(2019-10-24)
리포지토리
기록 위치C
운영 체제Windows, MacOS, Linux
플랫폼IA-32, x86-64
면허증MIT
웹사이트nekovm.org/doc/vm/

네코VM은 니콜라스 캐나스가 프랑스 보르도의 두 인디 비디오 게임 회사인 모션 트윈시로 게임즈에서 연구개발(R&D) 노력의 일환으로 개발한 가상 머신이다.NekoVM의 모국어는 Neko라고 하는 높은 수준의 동적으로 타이핑된 프로그래밍 언어의 바이트 코드다.이 쌍을 통해 Neko를 내장된 스크립팅 언어로 직접 사용하거나, NekoVM 바이트코드에 대한 일부 다른 언어(예: Haxe)를 컴파일하여 NekoVM을 대상으로 할 수 있다.

개념

Neko는 컴파일러가비지 수집 기능이 있는 가상 머신(VM)을 가지고 있다.컴파일러는 소스 .neko 파일을 VM으로 실행할 수 있는 바이트코드 .n 파일로 변환한다.Neko는 고정 클래스가 없는 동적으로 입력되기 때문에 개발자는 (유형 매핑과는 대조적으로) 적절한 런타임 매핑만 찾으면 코드가 제대로 실행된다.Neko FAQ의 설명에 따르면 "...고급 유형 시스템을 다룰 필요가 없기 때문에 CLR/JVM에 비해 NekoVM에 새 언어 또는 기존 언어를 쓰는 것이 더 쉽다.또한, 언어는 동일한 데이터 구조만 공유하면 되고 항상 동일한 유형이 아니기 때문에 더 쉽게 상호 운용될 수 있다는 것을 의미한다."[1]

Neko는 Apache Groovy와 같은 다른 스크립팅 언어와 같이 실행하기 전에 컴파일할 것을 요구한다.네코는 런타임에 해석될 필요가 없기 때문에 더 빨리 실행된다.Haxe 프로그래밍 언어는 Neko 코드로 컴파일할 수 있으며, 다른 대상도 있다.

가상 시스템

Neko 가상 머신은 Neko 바이트코드 파일을 실행하는 데 사용되며, VM에는 바이트코드 파일을 실행 가능한 파일로 변환하는 옵션도 있다(대상 운영 체제에 따라 출력 변경).

언어

네코
NekoVM logo
패러다임객체 지향, 구조화, 프로토타입 기반, 스크립팅
설계자니콜라스 카나스세
개발자
첫 등장2005; 17년 전(2005)
안정적 해제
2.3.0 / 2019년 10월 24일; 2년(2019-10-24)
타이핑 규율동적
구현 언어OCAML
플랫폼네코VM
OSWindows, MacOS, Linux
면허증MIT
파일 이름 확장명.neko .n
웹사이트nekovm.org/specs/syntax/

안녕 세계

$print("헬로 월드!"); 

유형 변환

$int.("67.87"); // 문자열 "67.87"을 정수 67로 변환 달러화(12345); // 정수 12345를 플로트 12345.0000으로 변환 달러 끈($array(1,2,3)); // 어레이 [1,2,3]를 문자열 "[1,2,3]"로 변환 

물건들

o = 신불(무효의); // 새 빈 개체 o2 = 신불(o); // o를 복사하다 o2 = 신불(33); // 매개 변수가 객체가 아닌 경우 예외 발생 o.밭을 갈다 = 가치를 매기다; //필드를 값으로 설정 o.밭을 갈다; // 객체 o의 "필드" 값 반환 

방법들

foo = 기능을 하다() {  $print(.x); } o = 신불(무효의); o.x = 3; o.술집을 내다 = 기능을 하다() {  foo(); }; o.술집을 내다(); // 인쇄 3 

함수 범위

var x = 3; f = 함수  { $print(x); } x = 4; f(); // 인쇄 3

프로토타입

var proto = $new(proto); proto.foo = functional { $print(this.msg) } var o = $new(snew); o.msg = "hello", $objsetproto(o,proto); // "hello" $objsetproto(o,foo)(; // 예외 제거

웹 기능

Neko는 Neko 언어를 위한 Apache 서버 모듈 mod_neko와 NekoVM 애플리케이션 서버 tora를 호스팅하기 위한 mod_tora를 포함한다.따라서 GET 및 POST 요청을 사용하여 사용자 입력을 처리할 수 있다.

get_params = $loader.짐을 싣다("mod_neko@get_params",0); $print("PARAMS = "+get_params()); 

참고 항목

참조

  1. ^ "How is Neko different from .Net's CLR or the Java's JVM ?". FAQ. NekoVM. Retrieved 2021-03-28.

외부 링크