2

저는 런타임 클래스 작성을 지원하는 프레임 워크/언어 목록을 작성하려고합니다. 예를 들어 .NET에서는 System.Reflection.Emit 라이브러리를 사용하여 런타임에 새 클래스를 내보낼 수 있습니다. 이 프레임 워크를 지원하는 다른 프레임 워크/언어를 언급 할 수 있다면 정말 도움이 될 것입니다.런타임 클래스 작성을 지원하는 프레임 워크/언어는 무엇입니까?

감사합니다 :) 파이썬, 루비, 같은

답변

2

동적 언어 ...

2

오브젝티브 C는 당신이 어떤 언어 캔 무엇을 의미하는지에 따라 (objc_allocateClassPair)

+0

감사합니다. :). 그리고 참고에 감사드립니다. – Alix

1

을 지원합니다.

예를 들어, C++을 사용할 수 있습니다. 첫눈에, 이것은 어리 석다 - C++는 정적으로 타이핑 된 컴파일 된 언어이다. 그래서 당신이하는 일은 프로젝트에 LLVM 라이브러리를 포함시키는 것입니다. 컴파일러 백엔드이므로 LLVM JIT를 사용하여 클래스를 설명하고 컴파일하고 실행합니다. 응용 프로그램의 모든 런타임에이 클래스를 사용할 수 있습니다.

IIRC gcc 백엔드는 C로 작성되므로 코드를 이해하고 싶다면 원칙적으로 클래스가없는 언어를 사용하여 런타임에 클래스를 정의 할 수 있습니다.

어느 쪽이든 당신의 임무 중 하나는 클래스가 정확히 무엇인지 정의하는 것입니다. 컴파일러 백엔드에는 내장되어 있지 않으므로 다양한 유형 시스템을 사용하여 다양한 프론트 엔드 언어를 지원해야합니다.

물론이 방법을 권장하지 않습니다. 단지 가능하다는 것을 지적하십시오.

+0

나는 명백한 지원을 의미했지만 이것은 흥미 롭습니다. 감사합니다 :) – Alix

2

JavaScript 함수에는 객체가 있습니다.

function Foo(x, y, z) 
{ 
     this.X = x; 
     this.Y = y; 
     this.Z = z; var g = function() 

} 

은이 같은 새로운 개체를 만들 수 있습니다 :

var obj = new Foo(a,b,c); 

을하지만 자바 스크립트에서 런타임에 함수를 만들 수 있습니다 따라서 같은 함수 정의를 제공.

function MakeFoo(x, y, z, f) //where parameter f is a function 
{ 
    var g = function() 
    { 

     this.X = x; 
     this.Y = y; 
     this.Z = z; 
     this.DoSomething = f; 
    } 

    return g; 

} 

var my_class = MakeFoo(a, b, c, function() { /* Do Stuff */ }); 
var obj = new my_class(); 

obj.DoSomething(); 
+0

재미있는, 감사합니다 :) – Alix

관련 문제