Обзор Engee - скрипты
Обзор Engee - скрипты Продолжая обзор Engee, нельзя не упомянуть о его скриптах. Вот тут кроются основные отличия от Matlab. Engee поддерживает язык Julia, т. е. прямой поддержки написанных под Matlab скриптов нет. Сам язык хоть и максимально приближен к языку Matlab, но имеет ряд отличий, которые придется учесть при переходе на Engee. Во-первых, если для Matlab тип данных переменной формируется автоматически, то в Julia его необходимо определять самостоятельно и строго соблюдать, чтобы не допустить ошибок в дальнейшем. Во-вторых, в Matlab любая переменная в общем случае является матрицей 1х1. Поэтому прямое объединение переменной размерностью 1х1 с вектором 1хn даст новый вектор размерностью 1х(n+1). В Julia переменная - это переменная, вектор - это вектор, множество - это множество. Поэтому объединение переменной с вектором даст множество из переменной и вектора. Корректное объединение возможно только с использованием специальных функций. В-третьих, все объекты в памяти имеют изменяемый тип (mutable), а это значит, что изменение любой копии объекта, в отличие от Matlab, будет модифицировать исходный объект и все его копии. И тут возникает три непривычные с точки зрения Matlab ситуации: а) Допустим, мы выполняем: A = zeros(1, 10); B = A; B[3] = 5; Совершенно точно можно утверждать, что и A[3] примет значение 5, что не характерно для Matlab. б) При динамическом увеличении размера массива без контроля размера существует риск переполнения памяти. Возникнуть такая ситуация может при последовательном запуске части скрипта без инициализации глобального массива, хранящегося в рабочем пространстве. в) После выполнения: A = zeros(1, n); B = A; deleteat!(B, n); попытка получить доступ к A[n] приводит к стандартной ошибке доступа к памяти со всеми вытекающими. Чтобы избежать подобных ошибок, необходимо пользоваться стандартными функциями работы с массивами. Разумеется, не стоит пренебрегать сборкой мусора в своих скриптах. Ну и приятные новости. Перевести скрипты с Matlab на Julia может помочь ИИ. А кроме того, отечественная среда поддерживает обозначения переменных на кириллице. Таким образом, можно сделать вывод, что ранее написанные по Matlab скрипты сразу запустить на Engee не получится. Основным изменением будет организация доступа к памяти и работа с переменными. И если Matlab прощает накопление мусора, то Engee более критична к остаточным данным. #обзоры, #моделирование