Запитання з тегом «language-design»

Питання, що стосуються дизайну та структури мов програмування.

3
Як слід вказати граматику для аналізатора?
Я програмую вже багато років, але одне завдання, яке все ще займає мене невдовзі довго, - це визначити граматику для аналізатора, і навіть після цих надмірних зусиль я ніколи не впевнений, що граматика, яку я придумав, є хорошою ( будь-якою розумною мірою «добра»). Я не сподіваюся, що існує алгоритм автоматизації …

5
Питання про створення мови сценаріїв
Скажімо, наприклад, я хотів заплатити комусь за те, щоб створити для мене мову програмування або мову сценаріїв. Який тип документа їм би знадобився, щоб повністю зрозуміти, що саме це я хочу. Я маю на увазі, чи є стандартні документи, які описують нову мову програмування / сценаріїв, про яку йдеться?

8
Уніфікація запитів програмування та запитів до бази даних [закрито]
Закрито . Це питання має бути більш зосередженим . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно зосередило увагу на одній проблемі, лише відредагувавши цю публікацію . Закрито 2 роки тому . Розглянемо загальний підручник для об'єктно-орієнтованих мов програмування, таких як C ++ або Java: створити …

4
Що мовні дизайнери роблять, щоб вирішити чи довести, що певна функція працює правильно?
Мене цікавить мовний дизайн, і взагалі можу легко міркувати про широко відомі особливості (наприклад, успадкування, поліморфізм, делегати, лямбда, захоплення, збирання сміття, винятки, дженерики, дисперсія, рефлексія тощо), їх взаємодії в конкретної мови, шляхів їх можливого втілення, обмежень тощо. В останні кілька місяців я почав читати про Rust, який має систему власності, …

3
Чому мова повинна віддавати перевагу відступу над явними маркерами для блоків?
Я вивчаю Haskell, і шукав інструмент автоматичного відступу. Я не дуже придивився, і дізнався, що в Haskell (як і в Python) відступ означає блок. Як результат, я здогадуюсь, що неможливо створити інструмент автоматичного форматування, такий сильний, як в інших мовах сімейства C, які використовують явні маркери, такі як {} (фігурні …

2
мова з двома бінарними операторами однакового пріоритету, ліво-асоціативним та право-асоціативним
Чи є мова програмування (або сценаріїв) (або якась доменна мова), яка має два бінарні оператори oplі oprмає той самий пріоритет, що oplє лівоасоціативною та oprправо асоціативною? (Я не можу знайти такий приклад, але я намагаюся зашифрувати якийсь загальний парсер, який достатньо загальний, щоб обробити цей дивний випадок) Як би розбиралися …

2
Тип системи для продуктивності
Чи існують системи (статичного) типу, які намагаються формалізувати продуктивні характеристики програм? Я не можу знайти такі спроби. Оскільки системи типів є (одним із) найпотужніших інструментів арсеналу програміста для надання заяв про програми, і оскільки існує багато випадків, коли продуктивність є критичною, здається, що не вдалося уявити, що були зроблені спроби …

1
Чому не можна перевантажувати оператор присвоєння складових на C #?
Назва вводить в оману, тому прочитайте все питання :-) . op=Наприклад, "оператор присвоєння складових" я маю на увазі таку конструкцію, як ця +=. Чистий оператор призначення ( =) не належить до мого питання. Під "чому" я маю на увазі не думку, а ресурс (книга, стаття тощо), коли хтось із дизайнерів …

2
Чому ключове слово 'out' використовується у двох, здавалося б, неоднакових контекстах?
У C # outключове слово можна використовувати двома різними способами. Як модифікатор параметра, в якому аргумент передається за посиланням class OutExample { static void Method(out int i) { i = 44; } static void Main() { int value; Method(out value); // value is now 44 } } Як модифікатор параметрів …

4
Фонетична мова програмування? [зачинено]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …

8
Чому до конструкцій мов не додаються шаблони дизайну?
Нещодавно я спілкувався з колегою, який зазначив, що його компанія працює над тим, щоб додати модель дизайну MVC як розширення PHP. Він пояснив, що вони написали код C для додавання Controllers, Models and Viewsдо мовних конструкцій для підвищення продуктивності. Тепер я знаю, що MVC - це схема архітектурного дизайну, яка …

3
Відповідна мова програмування для розробки музичного програмного забезпечення [закрито]
Зачинено. Це питання поза темою . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно було тематичним для обміну стеками програмного забезпечення. Закрито 5 років тому . Я хочу створити програмне забезпечення для свого музичного інструменту, який є ритмічним (мелодії немає). Я хочу зробити це програмне забезпечення: …

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

4
Розвиток динамічної мови
Я створив кілька рукописних компіляторів для дуже простих мов, але тепер я хочу спробувати свої сили у розробці динамічної мови, подібної до спрощеного Python або Ruby. Однак мені було легко обернути голову навколо того, як працюють компілятори. Примітивні компілятори просто перекладають. Але я не можу цього зробити, якщо мова динамічна. …

3
Чому scanf називається scanf? (Те саме для printf.)
Мені просто цікаво, чому в мові програмування на C функція читання форматованого входу називалася "scanf" на відміну від "readf". Я припускаю, що це походить від більш ранньої мови, тож у такому випадку чому його назвали таким чином у більш ранній мові? (Рекурс.) Крім того, чому "printf", а не "writef"? Чому …

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