Фортран: відмінності між версіями

[перевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
SimondR (обговорення | внесок)
правопис
Рядок 155:
* [[Перевантаження операторів|Перевантаження стандартних операторів]] та розширення набору операторів за допомогою створення нових в сучасному фортрані дозволяє писати програми максимально наближеними до складних математичних формул<ref>[http://dx.doi.org/10.1109/MCSE.2012.33 Damian Rouson et al. This Isn't Your Parents' Fortran: Managing C++ Objects with Modern Fortran, Comput. Sci. Eng. 14, 46 (2012)]</ref><ref>[https://books.google.com.ua/books?id=xedE5KkHVn4C Damian Rouson, Jim Xia, Xiaofeng Xu, Scientific Software Design: The Object-Oriented Way, Cambridge University Press, 2011, ISBN 9781139498784]</ref><ref>[http://dx.doi.org/10.1155/2015/942059 Magne Haveraaen et al. High-Performance Design Patterns for Modern Fortran, Scientific Programming, Volume 2015 (2015)], див. також [http://dx.doi.org/10.1145/2532352.2532358 1],[http://dx.doi.org/10.1145/1322436.1322438 2]</ref><ref>[https://books.google.com.ua/books?id=1JDUc5qR7dIC Ed Akin, Object-Oriented Programming Via Fortran 90/95, Cambridge University Press, 2003, ISBN 9780521524087]</ref><ref>[https://books.google.com.ua/books?id=pOH80J24R_gC Markus A., Metcalf w.M. Modern Fortran in practice, Cambridge University Press 2012, ISBN 9781107017900]</ref>
 
Основні можливості об'єктно-орієнтованого програмування додали ще в Фортран 90 стандарт. Починаючи з стандарту Фортран 2003, мова отримала повний набір можливостей, що дозволяють класифікувати фортран як [[Об'єктно-орієнтоване програмування|об'єктно-орієнтовану]] мову програмування: [[Інкапсуляція|інкапсуляцію]] та модульність; [[Успадкування (програмування)|успадкування]]; прив'язані до типів процедури; [[Поліморфізм (програмування)|поліморфізм]]; [[Вказівник|вказівники]] на процедури; [[Абстрактний тип|абстрактні типи даних]]. Також сучасний стандарт фортрану вдеякою деякій мірімірою дозволяє використовувати [[Функційне програмування|функційну парадигму програмування]] з допомогою <code>pure</code> та <code>elemental</code> функцій, [[Рекурсія|рекурсії]] та [[Функція вищого порядку|функцій вищого порядку]] (як аргумент, результат та з одним рівнем [[Вкладена функція|вкладених функцій]]),- однак без [[Замикання (програмування)|замикань (closures)]], [[Анонімна функція|анонімних функцій (лямбда-функцій)]] та [[partial application|часткового застосування]].
 
== Компілятори ==