3
$\begingroup$

For using any programming language, a mathematical formula should be written in the corresponding code. I wonder if there is any service (for any programming language, Matlab, Mathematica, Python, etc) to directly translating a mathematical formula (e.g., written in TeX) into the programming code.

Input: a mathematical formula in TeX Output: the corresponding code to be executed in Matlab, Mathematica, Python, etc

$\endgroup$
4
$\begingroup$

Julia's macros and string macro are made for doing this kind of thing. You can define a domain-specific language (DSL) within a macro scope and use that as a way to define problems. One example of this is the DifferentialEquations.jl @ode_def macro. You may have to use a string macro (due to parsability into ASTs) but this sort of tool is what allows you to auto-translate syntax. Some interesting examples of string macros are the MATLAB.jl mat"" strings which allows you to write MATLAB code and have it execute directly in MATLAB:

mat"""
    $u = $x + $y
	$v = $x - $y
"""

Similarly the Rcall.jl r"" string which runs R code

R"rnorm(10)"

Those call to other languages, whereas a string macro like LispSyntax.jl just translates Clojure syntax to Julia:

lisp"(fib 30)"

So writing one that converts from LaTeX to standard Julia is definitely possible, but it looks no one has hit that exact niche yet.

$\endgroup$
0
$\begingroup$

One problem with converting Tex syntax to equations is that it can be ambiguous - the main goal with TeX is typesetting the look, not the actual meaning. If you have many formulas already in TeX, then looking to parse them into a symbolic form is okay. But if starting from scratch, a symbolic mathematics package would be a better choice.

Another issue is that converting symbolic equations to code is very domain-specific. In order for mathematical notation to be concise, there are many assumptions and implicit context surrounding the written formulas. Any system for interpreting formulas needs to know about these.

Most symbolic mathematics packages have support for code generation. For some examples in Sympy, see the Sympy code generation tutorial

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.