Любая программа должна начинать работу с ядром пакета Mathematica с вызова функции MLInitialize. При работоспособном ядре функция возвращает структура типа MLEnvironment, в противном случае результатом будет NULL:
Mlenvironment env;
Env = MLInitialize(NULL);
if(env == NULL) clean_up_and_exit(); //проверка работоспособности ядра
Работа с расчетным ядром начинается с создания соединения. MathLink позволяет при создании соединения указать, каким образом планируется осуществлять взаимодействие. В нашем случае каждый раз будет запускаться новый экземпляр ядра на том же компьютере, на котором функционирует Web-сервер. Для создания соединения используется функция MLOpen:
MLINK lp;
int argc=4;
Char *argv[5] = {“-linkname”, “c:\\Mathematica\math -mathlink”, “-linkmode”, “launch”, NULL);
lp = MLOpen(argc, argv);
После создания соединения можно передавать ядру выражения. Все данные между ядром и прикладной программой передаются посредством разнообразных пакетов. Каждый тип пакетов ориентирован на свою область использования. Например, можно передавать выражения для расчета с использованием функции MLPutFunction и указанием имени математической функции, скажем, «Plus».