Существует ли authorative список функций языка программирования? [закрытый]

14
задан Derek Litz 4 August 2010 в 08:13
поделиться

2 ответа

Очень хорошие объяснения парадигм программирования и концепций программирования, из которых построены эти парадигмы, можно найти в работах Питера ван Роя. Особенно в книге Питера Ван Роя и Сейфа Хариди Концепции, методы и модели компьютерного программирования . ( Вот сопутствующая вики. ) CTM (как его называют в отрасли) использует мультипарадигмальный язык программирования Distributed Oz , чтобы представить все основные парадигмы программирования.

Питер ван Рой также сделал этот удивительный плакат, на котором показаны 34 основные парадигмы, их отношения и позиции на различных осях . Плакат - это, по сути, невероятно сжатая версия CTM. Более подробное объяснение этого плаката содержится в статье Парадигмы программирования для чайников: что должен знать каждый программист , которая появилась в качестве главы в книге Новые вычислительные парадигмы для компьютерной музыки , отредактированной Дж. Ассаяг и А. Герцо. Например, он очень кратко и легко для понимания объясняет, что такое парадигма программирования , что такое концепция программирования и как они взаимосвязаны.

Другая замечательная книга, которая демонстрирует несколько основных парадигм программирования, - это Структура и интерпретация компьютерных программ Гарольда Абельсона и Джеральда Джея Сассмана . Эта книга была основой «Введение в программирование» Массачусетского технологического института (6.001) для студентов в течение нескольких десятилетий. Курс, преподаваемый самими Абельсоном и Сассманом, был записан на корпоративном тренинге для Hewlett-Packard в 1986 году .

Вы можете найти видеозаписи и материалы курса весны 2005 года на веб-сайте OpenCourseWare Массачусетского технологического института . Еще одна запись курса из недолговечного проекта Университета АрсДигита Массачусетского технологического института . SICP также преподавался в других университетах, фактически курс 2010 года в Беркли только что закончился .

SICP, как его называют в просторечии, вероятно, является одной из лучших книг по программированию, когда-либо написанных.

Основное различие между SICP и CTM заключается в дидактическом подходе: CTM демонстрирует большинство основных парадигм с использованием чрезвычайно мощного многопарадигмального языка, который уже их поддерживает (в основном Distributed Oz, но также и некоторые другие). SICP OTOH демонстрирует их, реализуя их на языке, который не поддерживает их изначально (подмножество Scheme). IOW: CTM научит объектно-ориентированный объект показывать программы, написанные на языке объектно-ориентированного программирования, SICP, путем реализации системы объектно-ориентированного программирования на схеме. Видеть, как объектная ориентация реализована в десятке или около того строк кода, чертовски круто.

Концепции дизайна в языках программирования (Франклин А. Турбак и Дэвид К. Гиффорд с Марком А. Шелдоном) - еще одна замечательная связанная книга.

Концепции языков программирования (Роберт У.Себеста) хорошо объясняет Концепции языков программирования, начиная с Plankalkül Конрада Цузе, продолжая с первых реальных языков программирования, таких как Fortran, Lisp, Cobol, Algol, BASIC и далее до C, C ++, Ява и Ада.

Concepts in Programming Languages ​​ (by John C.Mitchell) - еще одна книга, которую часто цитируют, но я, к сожалению, еще не читал.

То же для Основы языков программирования (Дэниел П. Фридман и Митчелл Ванд), также известный как EoPL .

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

Поскольку вы много спрашивали о типировании конкретно, я был бы упущен, если бы не упомянул Типы и языки программирования (Бенджамина К. Пирса) или TaPL , как его обычно называют. По сути, это книга о теории типов в части, касающейся языков программирования. Обратите внимание, однако, что его взгляд на типы не является бесспорным: например, он в значительной степени категорически отрицает существование динамической типизации.

Чтобы сбалансировать это очень строгое определение Пирса, вам обязательно следует прочитать блестящий Typeful Programming Луки Карделли. В статье он утверждает, что программирование с использованием типов в качестве конструкции моделирования и структурирования, а не просто подстраховки, является самостоятельной парадигмой программирования.(Это, например, резко контрастирует с плакатом и книгой Питера ван Роя, в которых полностью игнорируется набор текста.)

Действительно отличный ресурс - это блог Lambda the Ultimate (где на самом деле находится Я познакомился практически со всеми вышеперечисленными материалами для чтения.)

21
ответ дан 1 December 2019 в 12:37
поделиться

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

Концепции объектно-ориентированного программирования, а также концепции других парадигм можно найти в соответствующих подкатегориях http://en.wikipedia.org/wiki/Category:Programming_paradigms

http: //en.wikipedia .org / wiki / Категория: Programming_constructs содержит много многих терминов, связанных с программированием.

Аналогично, http://en.wikipedia.org/wiki/Category:Type_theory содержит такие хорошо известные термины, как статическая / динамическая / слабая / строгая типизация и многие другие, если вам интересно.

И так далее ...

1
ответ дан 1 December 2019 в 12:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: