Запитання з тегом «programming-languages»

Питання, пов'язані з розробкою, реалізацією та аналізом мов програмування. НЕ для питань, як програмувати, які є поза темою на цьому сайті.

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

3
Що таке поетапні функції (концептуально)?
В останній статті CACM [1] автори представляють реалізацію для поетапних функцій . Вони використовують термін так, ніби він був добре відомий, і жодна з посилань не виглядає очевидним вступом. Вони дають коротке пояснення (зміна мого та посилального номера змінено; в оригіналі - 22) У контексті генерування програм багатоступеневе програмування (MSP, …

3
Яке співвідношення між функторами в SML та теорії категорій?
З тієї ж думки , як ця заява по Andrej Bauer в цьому відповіді Громада Хаскелла розробила низку методик, натхнених теорією категорій, з яких монади найбільш відомі, але не повинні плутати їх з монадами . Яке співвідношення між функторами в SML та функторами в теорії категорій? Оскільки я не знаю …

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

8
Мова програмування, де кожен вираз має сенс
За рекомендацією я відновлюю це з переповнення стека . Нещодавно я замислювався над наступним випуском. Розглянемо код для стандарту "Привіт, світ!" програма: main() { printf("Hello World"); } Тепер майже будь-яка зміна цього коду зробить його абсолютно марним, адже практично кожна зміна запобігає компіляції коду. Наприклад: main(5 { printf("Hello World"); } …

10
Чи можлива універсальна мова складання для всіх комп'ютерів?
Я хотів би задати кілька питань щодо мови складання. Я розумію, що вона дуже близька до машинної мови, що робить її швидшою та ефективнішою. Оскільки у нас існують різні комп'ютерні архітектури, чи це означає, що я повинен писати різний код в Асамблеї для різних архітектур? Якщо так, чому це не …

4
Як сміттєзбірники уникають переповнення штабелю?
Тож я думав про те, як працюють сміттєзбірники, і думав про цікаве питання. Імовірно, збирачі сміття повинні перетинати всі споруди однаковим чином. Вони не можуть знати погоди, яку вони об’їжджають пов’язаним списком чи збалансованим деревом чи ще. Вони також не можуть використовувати занадто багато пам'яті для пошуку. Один з можливих …

3
Категоризація типів систем (сильна / слабка, динамічна / статична)
Якщо коротко: як класифікуються системи типів в академічному контексті; зокрема, де я можу знайти авторитетні джерела, які роблять чіткими відмінності між різними типами системи? У певному сенсі складність цього питання полягає не в тому, що я не можу знайти відповідь, а в тому, що я можу знайти занадто багато, і …

1
Чи достатньо циклу "до часу" для цілісності Тьюрінга?
Я знаю, що в імперативних мовах програмування цикл time-do є достатнім як конструкція потоку управління, щоб зробити мову Turing-повною (що стосується потоку управління - звичайно, нам також потрібна необмежена пам'ять і певні оператори ...) . Суть мого питання полягає в тому: чи цикл do-while має таку ж обчислювальну потужність, що …

5
Чому функціональні мови Тьюрінга завершені?
Можливо, моє обмежене розуміння теми є неправильним, але це те, що я розумію поки що: Функціональне програмування засноване на обчисленні лямбда, сформульованому Церквою Алонцо. Імперативне програмування базується на моделі машини Тьюрінга, зробленої Аланом Тьюрінгом, студентом Церкви. Обчислення лямбда настільки ж потужне і здатне, як і машина Тюрінга, тобто вони є …

6
Чим відрізняється мова сценаріїв від звичайної мови програмування?
Яка різниця між мовою програмування та мовою сценаріїв? Наприклад, розглянемо C проти Perl. Єдина різниця в тому, що мови сценаріїв вимагають лише перекладача і не потребують компіляції та зв’язування?

7
Які приклади неузгодженості та неповноти в Unix / C?
У відомому нарисі Річарда Габріеля «Rise of Worse is Better Better» він протиставляє карикатурні версії дизайнерських філософій MIT / Stanford (Lisp) та New Jersey (C / Unix) уздовж осей простоти, правильності, послідовності та повноти. Він наводить приклад "проблеми програвача ПК" ( обговорюваної в іншому місці Джошем Хаберманом ), щоб стверджувати, …

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

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.