Языки научиного программирования

Сегодня мы поговорим о языках научиного программирования

Image credit:

Существует как минимум 2 языка программирования:

  1. Язык программирования Julia

  2. Язык программирования GNU Octave

Сегодня мы поговорим о них.

1. Julia

Julia — это высокоуровневый, высокопроизводительный бесплатный язык программирования с динамической типизацией, созданный для математических вычислений. Он также эффективен для написания программ общего назначения.Синтаксис языка похож на синтаксис других математических языков (например, MATLAB и Octave), но имеет некоторые существенные отличия. Julia написана на C, C++ и Scheme. Стандартный пакет включает в себя JIT-компилятор на базе LLVM, благодаря которому, по словам авторов языка, приложения, написанные полностью на языке, практически не уступают по производительности приложениям, написанным на статически скомпилированных языках, таких как C или C++. Большая часть стандартной библиотеки языка написана на том же языке. Язык также имеет встроенную поддержку большого количества команд для распределенных вычислений.

Язык динамичен, но использует JIT-компиляцию. Благодаря этому достигается высокая скорость приложений, написанных на “чистом” языке, без использования низкоуровневых библиотек и векторных операций. Поддерживается перегрузка функций и операторов (которые на самом деле также являются функциями), в то время как при желании вы можете указать тип для аргументов функции, который обычно недоступен в языках с динамически типизированной структурой. Это позволяет создавать специализированные версии функций и операторов для ускорения вычислений. Наиболее подходящая версия функции выбирается автоматически во время выполнения. Кроме того, благодаря перегрузке операторов можно создавать новые типы данных, которые ведут себя как встроенные типы.

Одним из приоритетов в разработке языка является поддержка распределенных вычислений. Существует большое количество стандартных конструкций для распараллеливания кода.

2. GNU Octave

GNU Octave — это бесплатная программная система для математических вычислений с использованием языка высокого уровня, совместимого с MATLAB.

Octave - это интерактивный командный интерфейс для решения линейных и нелинейных математических задач, а также проведения других численных экспериментов. Кроме того, Octave можно использовать для пакетной обработки. Язык Octave оперирует арифметикой действительных и комплексных скаляров, векторов и матриц, имеет расширения для решения линейных алгебраических задач, нахождения корней систем нелинейных алгебраических уравнений, работы с полиномами, решения различных дифференциальных уравнений, интегрирования систем дифференциальных и дифференциально-алгебраических уравнений первого порядка, интегрирования функций на конечные и бесконечные интервалы. Этот список можно легко расширить с помощью языка Octave (или с помощью динамически загружаемых модулей, созданных на C, C++, Fortran и т.д.). Вы можете использовать любые цифры в нумерованном списке — это не имеет значения. При преобразовании в HTML или другой формат числа станут правильными и последовательными (1, 2, 3 и т.д.).

Octave - это интерпретируемый язык программирования. Он похож на C и поддерживает большинство основных функций стандартной библиотеки C, а также основные команды Unix и системные вызовы. С другой стороны, он не поддерживает передачу аргументов по ссылке (конструктивная особенность).

The syntax of the language is very similar to MATLAB, and well-written scripts will run in both Octave and MATLAB.

Никита Кармацкий
Никита Кармацкий
Студент РУДН

Мои научные интересы включают компьютерные игры, программирование и Чтение научных статей.