Вопросы с тегом «programming-languages»

Вопросы, связанные с проектированием, реализацией и анализом языков программирования. НЕ для вопросов о том, как программировать, которые не по теме на этом сайте.

4
Почему функция с полиморфным типом `forall t: Type, t-> t` должна быть тождественной функцией?
Я новичок в теории языка программирования. Я смотрел несколько онлайн-лекций, в которых преподаватель утверждал, что функция с полиморфным типом была forall t: Type, t->tбы идентичностью, но не объяснял почему. Может кто-нибудь объяснить мне, почему? Может быть, доказательство претензии из первых принципов.

3
Есть ли теория исключений в иерархиях?
Я знаком с дюжиной языков программирования, которые в некотором роде имеют исключения, но я стал свидетелем двух «патологических» тенденций. Кажется, что не существует общего шаблона или иерархии исключений. Каждый язык в основном катит свою собственную версию, и если исключения делают это стандартом, то исключения, которые можно найти в стандарте, были …

3
Проблемы с реализацией замыканий в нефункциональных настройках
В языках программирования замыкания являются популярной и часто желаемой функцией. Википедия говорит (выделение мое): В информатике замыкание (...) - это функция вместе со средой ссылки для нелокальных переменных этой функции. Закрытие позволяет функции обращаться к переменным вне ее непосредственной лексической области. Таким образом, замыкание - это, по сути, (анонимное?) Значение …

8
Какие проблемы процедурного программирования ООП решает на практике?
Я изучал книгу "C ++ Demysified" . Теперь я начал читать «Объектно-ориентированное программирование в первом выпуске Turbo C ++ (1-е издание)» Роберта Лафора. У меня нет никаких знаний о программировании, которое выходит за рамки этих книг. Эта книга может быть устаревшей, потому что ей 20 лет. У меня есть последнее …

2
Непрерывные по Скотту функции: альтернативное определение
Я действительно борюсь с этим свойством: Пусть - пространства когерентности, а - монотонная функция. непрерывен тогда и только тогда, когда , для всех таких, что является направленным множеством.f : C l ( X ) → C l ( Y ) f f ( ⋃ x ∈ D x ) = …

3
Как сделать язык гомоиконическим
Согласно этой статье следующая строка кода на Лиспе выводит «Hello world» на стандартный вывод. (format t "hello, world") Lisp, который является гомоиконическим языком , может обрабатывать код как данные следующим образом: Теперь представьте, что мы написали следующий макрос: (defmacro backwards (expr) (reverse expr)) в обратном направлении - это имя макроса, …

5
Что делает язык «оптимизированным» для конкретной задачи?
Хотите улучшить этот пост? Предоставьте подробные ответы на этот вопрос, включая цитаты и объяснение того, почему ваш ответ правильный. Ответы без достаточной детализации могут быть отредактированы или удалены. Часто существуют языки программирования, которые специализируются для конкретных задач. Некоторые языки программирования превосходны в арифметике массивов (например, матрицы и использование многомерных массивов), …

2
Что делает PROLOG Turing-Complete?
Я знаю, что можно доказать, что PROLOG является полным по Тьюрингу, создав программу, которая имитирует машину Тьюринга, например: turing(Tape0, Tape) :- perform(q0, [], Ls, Tape0, Rs), reverse(Ls, Ls1), append(Ls1, Rs, Tape). perform(qf, Ls, Ls, Rs, Rs) :- !. perform(Q0, Ls0, Ls, Rs0, Rs) :- symbol(Rs0, Sym, RsRest), once(rule(Q0, Sym, Q1, …

1
Вывод типа с типами продукта
Я работаю над компилятором для конкатенативного языка и хотел бы добавить поддержку вывода типов. Я понимаю Хиндли-Милнера, но я изучаю теорию типов по ходу дела, поэтому не знаю, как ее адаптировать. Является ли следующая система надежной и достоверной? Термин - это литерал, композиция терминов, цитата из термина или примитив. e::=x∣∣ee∣∣[e]∣∣…e::=x|ee|[e]|… …

4
Может ли язык программы быть достаточно гибким, чтобы позволить программам расширять семантику языка
Что касается функций в таких языках, как ruby ​​(и javascript), которые позволяют программисту расширять / переопределять классы в любое время после его определения (включая классы, такие как String), теоретически выполнимо разработать язык, который позволит программам впоследствии расширяться его семантика. Пример: Ruby не допускает множественное наследование, но я могу расширить / …

3
Какие языки исследований имеют более сильную систему типов, чем Haskell и почему?
Здесь я прочитал это: У Haskell определенно нет самой продвинутой системы типов (даже близко, если считать языки исследований), но из всех языков, которые фактически используются в производстве, Haskell, вероятно, находится на вершине. Поэтому я прошу две вещи: какие языки исследований имеют более мощные системы типов, чем Haskell; что они улучшают. …

2
Есть ли рецензируемые статьи, в которых рассматриваются плюсы и минусы функционального программирования?
Может ли кто-нибудь отослать меня к рецензируемым статьям, изучающим преимущества или недостатки написания кода в функциональном стиле? Существуют ли документы, в которых обсуждается применение лямбда-исчисления в таких областях, как машинное обучение, языковой дизайн и т. Д.?

7
Почему отрицательные индексы массива имеют смысл?
Я наткнулся на странный опыт программирования на Си. Рассмотрим этот код: int main(){ int array1[6] = {0, 1, 2, 3, 4, 5}; int array2[6] = {6, 7, 8, 9, 10, 11}; printf("%d\n", array1[-1]); return 0; } Когда я компилирую и запускаю это, я не получаю никаких ошибок или предупреждений. Как …

3
В чем разница между исчислением и языком программирования?
Я думаю, что я довольно озадачен тем, что называется исчислением и тем, что называется языком программирования. Я склонен думать и, возможно, мне сказали, что исчисление - это формальная система рассуждений об эквивалентности программ. Программы имеют операционную семантику, указанную машиной, которая должна (я думаю?) Быть детерминированной. Таким образом, (правильное) исчисление для …

2
Справочный запрос: теория категорий в применении к системам типов
Я продолжаю слышать о том, как нужно изучать теорию категорий, чтобы действительно понять теорию языка программирования. До сих пор я выучил много PL, даже не ступая в царство категорий. Тем не менее, я подумал, что пришло время сделать прыжок, чтобы увидеть, что я пропустил. К сожалению, ни один из источников, …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.