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

20
В чем разница между языком сценариев и обычным языком программирования?

В чем разница между языком программирования и языком сценариев? Например, рассмотрим C против Perl. Единственная разница в том, что языки сценариев требуют только интерпретатора и не требуют компиляции и...

20
Когда две симуляции не являются бисимуляцией?

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

20
Каковы примеры несоответствия и неполноты в Unix / C?

В знаменитом эссе Ричарда Габриэля « Лучше хуже» он противопоставляет карикатурные версии философии дизайна MIT / Stanford (Lisp) и New Jersey (C / Unix) по осям простоты, правильности, согласованности и полноты. Он приводит пример «проблемы с загрузкой ПК» ( обсуждаемой в другом месте Джошем...

19
Функция ML типа 'a ->' b

Наш профессор попросил нас подумать о функции в OCaml, которая имеет тип 'a -> 'b т.е. функция одного аргумента, которая может быть чем угодно, и которая может возвращать что угодно другое. Я думал об использовании raiseв функции, которая игнорирует ее аргумент: let f x = raise Exit Но профессор...

19
Алгоритмы проверки типов

Я начинаю личное библиографическое исследование по алгоритмам проверки типов и хочу несколько советов. Какие алгоритмы, стратегии и общие методы проверки типов наиболее часто используются? Меня особенно интересуют сложные алгоритмы проверки типов, которые были реализованы в широко известных строго...

18
Почему функция с полиморфным типом `forall t: Type, t-> t` должна быть тождественной функцией?

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

18
Проблемы с реализацией замыканий в нефункциональных настройках

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

18
Есть ли теория исключений в иерархиях?

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

17
Какие проблемы процедурного программирования ООП решает на практике?

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

16
Как сделать язык гомоиконическим

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

16
Непрерывные по Скотту функции: альтернативное определение

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

15
Что делает 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) :-...

15
Что делает язык «оптимизированным» для конкретной задачи?

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

15
Вывод типа с типами продукта

Я работаю над компилятором для конкатенативного языка и хотел бы добавить поддержку вывода типов. Я понимаю Хиндли-Милнера, но я изучаю теорию типов по ходу дела, поэтому не знаю, как ее адаптировать. Является ли следующая система надежной и достоверной? Термин - это литерал, композиция терминов,...

15
Может ли язык программы быть достаточно гибким, чтобы позволить программам расширять семантику языка

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

14
Есть ли рецензируемые статьи, в которых рассматриваются плюсы и минусы функционального программирования?

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

14
Почему отрицательные индексы массива имеют смысл?

Я наткнулся на странный опыт программирования на Си. Рассмотрим этот код: 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; } Когда я компилирую и запускаю это, я не получаю никаких ошибок или предупреждений. Как сказал мой...

14
Какие языки исследований имеют более сильную систему типов, чем Haskell и почему?

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

13
Справочный запрос: теория категорий в применении к системам типов

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

13
В чем разница между исчислением и языком программирования?

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