Язык программирования для математиков

Как человек, который увлечен как математикой, так и языками программирования, я думал, что поделюсь тем. Что я считаю 10 великими языками программирования для математики. Я стремился к разнообразию при этом, чтобы дать вам широкий спектр подходов к программированию и моделированию проблем. Описания языков взяты прямо с их соответствующих сайтов или страниц википедии. Но я также добавил свои два цента по всему списку.

1. Язык Вольфрама

Язык Вольфрама

Язык Wolfram-это язык программирования Mathematica и Wolfram Programming Cloud.

Это общий многопарадигмальный язык программирования, разработанный компанией Wolfram Research. Он был разработан, чтобы быть как можно более общим и подчеркивает символические вычисления. Функциональное программирование и программирование на основе правил.

Язык очень большой, затрагивающий множество областей, часто специализированных.

Мой дубль

Это приличный функциональный, основанный на правилах язык программирования. Который очень хорошо справляется с символическими вычислениями. Тем не менее, я не нахожу его особенно элегантным, насколько это касается языков программирования.

Его реальная ценность заключается в его огромной многодоменной стандартной библиотеке, которая. Особенно для математических приложений. На годы опережает практически любой другой язык программирования в мире. Посмотрите их демо-версию, и, скорее всего, вы будете впечатлены.

2. Matlab / GNU Octave

MATLAB (matrix laboratory)-многопарадигмальная вычислительная среда и язык программирования четвертого поколения.

Проприетарный язык программирования, разработанный компанией MathWorks, MATLAB позволяет манипулировать матрицами. Строить графики функций и данных. Реализовывать алгоритмы. Создавать пользовательские интерфейсы и взаимодействовать с программами. Написанными на других языках. Включая C, C++, Java. Fortran и Python.

Мой дубль

Трудно превзойти для численных вычислений. Рассмотрим альтернативную реализацию/клон с открытым исходным кодом, GNU Octave, а также.

3. R

R-это язык программирования и программная среда для статистических вычислений и графики. Поддерживаемая Фондом статистических вычислений R Foundation for Statistical Computing.

Язык R широко используется статистиками и разработчиками данных для разработки статистического программного обеспечения и анализа данных.

Опросы, опросы добытчиков данных и исследования баз данных научной литературы показывают. Что популярность R в последние годы существенно возросла.

4. Coq / Gallina

Coq-это интерактивное доказательство теоремы. Он позволяет выражать математические утверждения, механически проверяет доказательства этих утверждений. Помогает найти формальные доказательства и извлекает сертифицированную программу из конструктивного доказательства ее формальной спецификации.

Кок работает в рамках теории исчисления индуктивных конструкций, производной от исчисления конструкций.

Рассматриваемый как язык программирования, Coq реализует зависимо типизированный функциональный язык программирования. В то время как рассматриваемый как логическая система. Он реализует теорию типов более высокого порядка.

Coq предоставляет язык спецификаций под названием Gallina. Программы, написанные на галлине, имеют слабое свойство нормализации – они всегда заканчиваются.

5. Пролог

Пролог-это универсальный язык логического программирования. Связанный с искусственным интеллектом и компьютерной лингвистикой.

Пролог имеет свои корни в логике первого порядка, формальной логике. Иличие от многих других языков программирования. Пролог декларативен.

Логика программы выражается в терминах отношений, представленных в виде фактов и правил. Вычисление инициируется путем выполнения запроса по этим отношениям.

6. Хаскелл

Haskell-это стандартизированный. Универсальный чисто функциональный язык программирования с нестрогой семантикой и сильной статической типизацией. Haskell имеет систему типов с выводом типов и ленивым вычислением.

Мой дубль

Один из самых сложных языков для понимания нефункциональных программистов. Его кривая обучения вполне стоит затраченных усилий. Его свободный от побочных эффектов. Чисто функциональный характер делает его вполне пригодным для моделирования математических задач. Она будет представлять особый интерес для тех. Кто занимается теорией категорий и исследованиями языков программирования.

7. Идрис

Idris-это универсальный чисто функциональный язык программирования с зависимыми типами. Система типов аналогична той, что используется Agda.

Язык поддерживает интерактивное доказательство теорем, сравнимое с Coq, включая тактику. В то время как акцент остается на программировании общего назначения еще до доказательства теорем.

Другими целями Idris являются “достаточная” производительность. Простое управление побочными эффектами и поддержка внедрения встроенных доменных языков.

Мой дубль

Язык исследования. Он сочетает в себе элементы Haskell и Coq. Довольно интересно.

8. Юлия

Julia-это высокопроизводительный динамический язык программирования высокого уровня для технических вычислений с синтаксисом. Знакомым пользователям других технических вычислительных сред.

Он обеспечивает сложный компилятор, распределенное параллельное выполнение. Численную точность и обширную библиотеку математических функций. Базовая библиотека Джулии, в основном написанная на самой Джулии, также объединяет зрелые. Лучшие в своем роде библиотеки с открытым исходным кодом C и Fortran для линейной алгебры. Генерации случайных чисел. Обработки сигналов и обработки строк.

Мой дубль

Очень перспективный язык для научных вычислений и науки о данных. Благодаря проекту Jupyter Джулия также доступна в виде исполняемых записных книжек.

9. Питон

Python-это широко используемый высокоуровневый, универсальный, интерпретируемый, динамический язык программирования.

Его философия дизайна подчеркивает читабельность кода. А синтаксис позволяет программистам выражать концепции в меньшем количестве строк кода. Чем это возможно в таких языках. Как C++ или Java.

Этот язык предоставляет конструкции, предназначенные для обеспечения четких программ как в малом. Так и в большом масштабе.

Python поддерживает несколько парадигм программирования, включая объектно-ориентированное. Императивное и функциональное программирование или процедурные стили. Он оснащен системой динамического типа и автоматическим управлением памятью. А также имеет большую и всеобъемлющую стандартную библиотеку.

Мой дубль

Что делает Python интересным с математической и научной точки зрения. Так это обширное количество соответствующих библиотек. Доступных для этого популярного языка программирования (например. Numpy, scipy. Scikit-learn, Sage и т. Д.).

Благодаря этой богатой экосистеме вы получаете простой в освоении, приятный язык. Который отлично подходит для научных вычислений. А поскольку он популярен. Примеры (и записные книжки Jupyter) доступны повсюду.

10. J

J-это очень лаконичный язык программирования массивов. Который наиболее подходит для математического и статистического программирования. Особенно при выполнении операций над матрицами. Он также используется в экстремальном программировании и анализе производительности сети.

Как и оригинальные языки FP/FL, J поддерживает программирование на функциональном уровне (не то же самое. Что функциональное программирование) с помощью своих негласных функций программирования.

Мой дубль

J. Как и APL и K. Является умопомрачительным языком. Он немногословен и труден для чтения поначалу. Но также невероятно силен. С ними стоит поэкспериментировать, если вы заинтересованы в новых подходах к манипулированию данными и их анализу.

Это реализация quicksort. Просто чтобы дать вам представление о том. С чем мы здесь имеем дело.

quicksort=: (($:@(#[)) ({~ ?@#)) ^: (1

Довольно дико.

Итак, у вас есть 10 замечательных языков программирования для тех. Кто интересуется математикой. Конечно, существуют и другие ценные варианты. И мне было бы интересно узнать больше о ваших личных фаворитах в комментариях ниже.