Я слышал несколько раз, что каждый программист должен изучать один язык каждого типа. Это не обязательно так, но я считаю, что это хорошая идея.
Я узнал , процедурный язык (Perl), но то , что есть другие типы?
Каковы различия между ними и каковы некоторые примеры каждого?
programming-languages
paradigms
динамический
источник
источник
Ответы:
Несмотря на то, что терминология далека от стандартизированной, общий способ классифицировать основные парадигмы программирования на
Вы, кажется, уже знаете, что такое процедурное программирование.
В функциональных языках функции рассматриваются как первоклассные объекты. Другими словами, вы можете передать функцию в качестве аргумента другой функции, или функция может вернуть другую функцию. Функциональная парадигма основана на лямбда-исчислении, и примерами функциональных языков являются LISP, Scheme и Haskel. Интересно, что JavaScript также поддерживает функциональное программирование.
В логическом программировании вы определяете предикаты, которые описывают отношения между сущностями, такие как
president(Obama, USA)
илиpresident(Medvedev, Russia)
. Эти предикаты могут быть очень сложными и включать переменные, а не только литеральные значения. После того, как вы определили все свои предикаты, вы можете задавать вопросы своей системы и получать логически непротиворечивые ответы.Основная идея в логическом программировании состоит в том, что вместо того, чтобы сообщать компьютеру, как вычислять вещи, вы говорите ему, что . Пример: ПРОЛОГ.
Объектно-ориентированный парадигма в некотором смысле является расширением процедурного программирования. В процедурном программировании у вас есть ваши данные, которые могут быть примитивными типами, такими как целые числа и числа с плавающей запятой, составными типами, такими как массивы или списки, и пользовательскими типами, такими как структуры. У вас также есть свои процедуры, которые работают с данными. Напротив, в ОО есть объекты, которые включают как данные, так и процедуры. Это позволяет вам иметь хорошие вещи, такие как инкапсуляция, наследование и полиморфизм. Примеры: Smalltalk, C ++, Java, C #.
Общее программирование было впервые введено в Аде в 1983 году и стало широко распространенным после введения шаблонов в C ++. Это идея, что вы можете написать код без указания реальных типов данных, с которыми он работает, и заставить компилятор выяснить это. Например, вместо того, чтобы писать
ты бы написал
один раз, и пусть компилятор сгенерирует определенный код для того, что
T
может быть, когдаswap()
фактически используется в коде.Общее программирование поддерживается в различной степени C ++, Java и C #.
Важно отметить, что многие языки, такие как C ++, поддерживают несколько парадигм. Также верно и то, что, даже если говорят, что язык поддерживает определенную парадигму, он может не поддерживать все возможности этой парадигмы. Не говоря уже о том, что существует много разногласий относительно того, какие функции требуются для конкретной парадигмы.
источник
Языки программирования имеют ряд в основном ортогональных особенностей; самый выдающийся лежит в парадигме или парадигмах, которые они поддерживают. Википедии статья охватывает парадигм исчерпывающе; Наиболее важные парадигмы, вероятно, следующие:
Но языки отличаются и другими способами:
источник
В настоящее время в моде несколько различных программных парадигм:
источник
Пролог - это язык логического программирования , с которым довольно легко начать работу. Это требует совершенно иного мышления, чем процедурное программирование, поэтому полезно исследовать, когда вы пытаетесь напрячь свой мозг.
Если вы поступаете в колледж, вам следует пройти курс по языкам программирования, поскольку он направлен на представление различных типов языков программирования и того, для чего они лучше всего используются.
источник
Большинство основных языков смешивают аспекты императивного, функционального и декларативного программирования. Нишевые языки, как правило, более экзотичны или представляют интересные новые идеи, которые по тем или иным причинам не подходят для программирования общего назначения. Некоторые, далеко не исчерпывающие примеры:
(+/ % #)&.:*:
вычисляет среднеквадратичное значение массива. Известен тем, что он лаконичен, известен тем, что нечитаем.источник