Wolfram
Mathematica
8의 신기능: SymbolicC
◄
이전
|
다음
►
소프트웨어 개발
API를 위한 특수 목적 언어(Domain-Specific Language) 작성
SymbolicC는
Mathematica
에서 특수 목적 언어를 작성할 수 있으며 C로 변환할 수 있습니다. 다음은
Mathematica
의 점과 다각형을 OpenGL API 호출로 변환하는 간단한 언어를 정의한 것입니다.
In[1]:=
X
Needs["SymbolicC`"] generateOpenGLCode[x_List] := CCall[If[Length[x] == 2, "glVertex2d", "glVertex3d"], x] generateOpenGLCode[Point[pts_]] := {CCall["glBegin", {"GL_POINTS"}], generateOpenGLCode /@ If[ListQ[First[pts]], N[pts], N[{pts}]], CCall["glEnd", {}]} generateOpenGLCode[ Polygon[pts_]] := {CCall["glBegin", {"GL_POLYGON"}], generateOpenGLCode /@ N[pts], CCall["glEnd", {}]} generateOpenGLCode[x__] := generateOpenGLCode /@ {x} { generateOpenGLCode[Polygon[{{1, 0}, {0, Sqrt[3]}, {-1, 0}}]], generateOpenGLCode[Point[{1, 1}]] } // ToCCodeString
Out[1]=