Novos Recursos do
Mathematica
8: SymbolicC
◄
anterior
|
próximo
►
Desenvolvimento de Software
Crie linguagem com domínio específico para APIs
O SymbolicC pode criar linguagens com domínio específico no
Mathematica
e ainda traduzi-las para C. Este exemplo define uma linguagem simples que converte pontos e polígonos do
Mathematica
em chamadas de API de OpenGL.
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]=