Pull to refresh

Comments 25

Странно, C# в процедурном.

>>Стоит отметить, что несколько точек выхода из всех этих языков поддерживаются только в Python
что? оО
Упс, опечатка. Имелось ввиду несколько точек входа. И то с помощью yield.
Про существование yield (и заодно await) в C# вы не в курсе?
в php так же есть yield, и в javascript тоже (если брать ES6), да и в ruby…

Как много этого yield

Ого, неожиданно

В императивной парадигме стоило бы упомянуть Fort.
В модульной — Ada и OCaml.
Помню легенду, что 'h' было отброшено, что бы название в два слова поместилось. Но подтверждения найти не могу.

Это u было отброшено


Forth is so named because in 1968 "the file holding the interpreter was labeled FOURTH, for 4th (next) generation software—but the IBM 1130 operating system restricted file names to 5 characters."[10]
Процедура

возвращать значение как результат своего выполнения

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

К примеру, совершенно непонятно, как противопоставлять модульное программирование и ООП, если ООП — это разновидность модульного программирования, когда единственной единицей модульности является класс. Который — полноценная лингвистическая конструкция с одной стороны, и тип данных (в смысле абстрактных типов данных, по Вирту, т.е. тут уже и процедурное прогаммирование проглядывает) — с другой.

Или другой некорректный пример — Си++: в отличие от Си, тут файл (.cpp) вовсе не является модулем, а заголовок (.hpp) не является интерфейсом такогого модуля. А в Си — являлся, и назывался объектом, единицей трансляции. В этом отношении (но не в других) Си++ оказывается дальше от ООП, чем классический Си, что забавно.

В TAPL разбираются отличия ООП и модулей — с точки зрения теории типов они оказываются двойственными.
К примеру, совершенно непонятно, как противопоставлять модульное программирование и ООП, если ООП — это разновидность модульного программирования, когда единственной единицей модульности является класс.


И вообще, все перечисленные парадигмы являются разновидностями императивной парадигмы. Помимо которой вполне себе заметны и развиты декларативная парадигма, парадигма метапрограммирования и событийно-ориентированная парадигма.

Вообще, достаточно хороший список есть на ru.wikipedia.org/wiki/Парадигма_программирования

Вот этого я тоже не понял. Мельком слышал про декларативное и совсем не ожидал увидеть тут перечисленные автором парадигмы...

Не ООП вообще разновидность модульного программирования, с классом=модулю, а только ООП в его общеизвестном виде. Это свойство распространенных сейчас языков, идущее, очевидно, из Явы, не более того.

В нашем мире всё очень относительно

Оо... Не знал. Будет, чем друзей удивить

О как Pascal «универсален» — сразу во всех категориях!

Все идём учить паскаль

Sign up to leave a comment.

Articles