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

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

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

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

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

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

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

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

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

3
Категоризация систем типов (сильная / слабая, динамическая / статическая)
Вкратце: как системы типов классифицируются в академическом контексте; в частности, где я могу найти авторитетные источники, в которых четко различаются различные типы систем типов? В некотором смысле, проблема в этом вопросе не в том, что я не могу найти ответ, а скорее в том, что я могу найти слишком много, …

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

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

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

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

3
Когда две симуляции не являются бисимуляцией?
Для заданной помеченной системы переходов , где - набор состояний, - набор меток, а - троичное отношение. Как обычно, напишите для . Помеченный переход обозначает, что система в состоянии меняет состояние на с меткой , что означает, что - это некоторое наблюдаемое действие, вызывающее изменение состояния.(S,Λ,→)(S,Λ,→)(S,\Lambda,\to)SSSΛΛ\Lambda→⊆S×Λ×S→⊆S×Λ×S\to\subseteq S\times\Lambda\times Sp→αqp→αqp \stackrel\alpha\rightarrow q(p,α,q)∈→(p,α,q)∈→(p,\alpha,q)\in\top→αqp→αqp\stackrel\alpha\to …

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

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

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