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

32
Могут ли обычные языки быть завершенными по Тьюрингу?

Я читал о Йоте и Джоте и нашел этот раздел запутанным: В отличие от Iota, где синтаксическое дерево для строки может разветвляться либо слева, либо справа, синтаксис Jot равномерно разветвляется слева. В результате, Йота не зависит от контекста, но Йот - это обычный язык. Насколько я понимаю, и...

30
Как связаны языки программирования и основы математики?

В основном я знаю о трех основах математики Теория множеств Теория типов Теория категорий Итак, каким образом связаны языки программирования и основы математики? РЕДАКТИРОВАТЬ Первоначальный вопрос был «Языки программирования на основе основ математики» с добавленным парагарфом И реализации теории...

28
Существуют ли программы, которые могут «переводить» исходный код между любыми двумя языками?

Существуют ли программы, которые могут «переводить» исходный код между любыми двумя языками (при условии, что переводчик имеет доступ к необходимым библиотекам)? Если есть, как они работают (используемые методы, необходимые знания и т. Д.)? Как они могут быть построены? Если нет, то какие...

28
Понятный, интуитивно понятный вывод комбинатора с фиксированной точкой (Y комбинатор)?

Комбинатор FIX с фиксированной запятой (он же Y-комбинатор) в (нетипизированном) лямбда-исчислении ( λλ\lambda ) определяется как: FIX ≜λf.(λx.f (λy.x x y)) (λx.f (λy.x x y))≜λf.(λx.f (λy.x x y)) (λx.f (λy.x x y))\triangleq \lambda f.(\lambda x. f~(\lambda y. x~x~y))~(\lambda x. f~(\lambda y....

27
Почему парадигма деструктора объекта в языках с мусорным сбором повсеместно отсутствует?

Ищите понимание решений, связанных с языковым дизайном, собираемым мусором. Возможно, специалист по языку мог бы просветить меня? Я родом из C ++, так что эта область сбивает меня с толку. Кажется, что почти все современные языки со сборкой мусора с поддержкой объектов OOPy, такие как Ruby,...

27
Зачем нам нужен язык ассемблера?

В основном мы пишем программы на языке высокого уровня. Так что во время учебы я наткнулся на ассемблер. Таким образом, ассемблер преобразует язык ассемблера в машинный язык, а компилятор делает то же самое с языком высокого уровня. Я обнаружил, что на ассемблере есть инструкции, такие как move r1...

27
Языки программирования становятся более похожими на естественные языки?

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

26
Все ли тьюринговые полные языки взаимозаменяемы

Обратите внимание, хотя я знаю, как программировать, я довольно новичок в теории CS. Согласно этому ответу Полнота по Тьюрингу - это абстрактное понятие вычислимости. Если язык является полным по Тьюрингу, то он способен выполнять любые вычисления, которые может выполнять любой другой полный по...

25
Какова связь между языками программирования, регулярными выражениями и формальными языками

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

25
Инструменты визуального программирования, почему они не работают с AST напрямую?

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

25
Есть ли доказательства того, что использование динамических языков влияет на производительность?

Мне интересно, есть ли какие-либо эксперименты, которые показывают существование или отсутствие корреляции между использованием динамического языка (такого как Python, Ruby, или даже языков, которые работают на платформе Java, таких как Groovy, Clojure) над статический язык (например, C / C ++) и...

24
Какова связь между функторами в SML и теории категорий?

Вдоль той же мысли, что и это высказывание Андрея Бауэра в этом ответе Сообщество Haskell разработало ряд методов, основанных на теории категорий, из которых монады наиболее известны, но их не следует путать с монадами . Какова связь между функторами в SML и функторами в теории категорий? Поскольку...

24
Что такое поэтапные функции (концептуально)?

В недавней статье CACM [1] авторы представляют реализацию поэтапных функций . Они используют этот термин, как если бы он был хорошо известен, и ни одна из ссылок не выглядит как очевидное введение. Они дают краткое объяснение (выделено мое и номер ссылки изменен; в оригинале 22) В контексте...

23
Возможен ли универсальный язык ассемблера для всех компьютеров?

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

23
Используют ли какие-либо языки программирования общие рекурсивные функции в качестве основы?

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

23
Как сборщики мусора избегают переполнения стека?

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

23
Язык программирования, где каждое выражение имеет смысл

В соответствии с рекомендацией я публикую это из Переполнения стека . Недавно я думал о следующей проблеме. Рассмотрим код для стандартного "Hello world!" программа: main() { printf("Hello World"); } Теперь почти любое изменение в этом коде сделает его абсолютно бесполезным, фактически почти каждое...

23
Категоризация систем типов (сильная / слабая, динамическая / статическая)

Вкратце: как системы типов классифицируются в академическом контексте; в частности, где я могу найти авторитетные источники, в которых четко различаются различные типы систем типов? В некотором смысле, проблема в этом вопросе не в том, что я не могу найти ответ, а скорее в том, что я могу найти...

22
Почему функциональные языки Тьюринга завершены?

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

22
Достаточно ли цикла do-while для полноты по Тьюрингу?

Я знаю, что в императивных языках программирования цикла while-do достаточно в качестве конструкции потока управления, чтобы сделать язык Тьюринга завершенным (что касается потока управления - конечно, нам также нужна неограниченная память и некоторые операторы ...) , Суть моего вопроса такова:...