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

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

9
Чому компілятори самостійного розміщення вважаються обрядом проходження нових мов?
Зараз у багатьох місцях я чув, що люди очікують, що мови використовуватимуть або принаймні матимуть компілятор, що хостинг, щоб заслужити повагу. Мені цікаво, чому це так. Компілятор видається дуже важливим програмним забезпеченням для написання, і я думаю, що не всі мови підходять для їх створення. Чи не було б більше …

5
Чому вивчення перекладача Lisp на Lisp так важливо?
Я бачив багато навчальних програм CS та навчальних пропозицій для нових програмістів, які закликають програміста-початківця вивчити ліст-перекладача, який спеціально написаний на lisp. Всі ці сайти говорять про речі, схожі на "його інтелектуальне одкровення", "це досвід просвітництва, який повинен мати кожен серйозний програміст", або "він показує вам апаратні та програмні відносини" …

3
Чому в Котліні немає статичного ключового слова?
Kotlin відомий перш за все як замінна Java для заміни, але позбавляється від добре відомої конструкції Java: staticключового слова. Натомість цю функціональність на рівні класу пропонують переважно супутні об’єкти. Що не так у статичних методах та полях, які супутні об’єкти дають кращу альтернативу? Я розгублений в обґрунтуванні, і не зміг …

1
Як комітет стандартів C ++ перевіряє свої дизайнерські ідеї?
Чи перевіряє комітет C ++ свої нові технічні характеристики на якомусь компіляторі прототипу, перш ніж випустити новий стандарт? Або вони випускають стандарт, який насправді є лише теоретичним, поки великі компілятори не застосовують його?

9
Чому більшість "відомих" імперативних мов / OO дозволяють неперевірений доступ до типів, які можуть представляти значення "нічого"?
Я читав про (не) зручність мати nullзамість (наприклад) Maybe. Прочитавши цю статтю , я переконаний, що було б набагато краще використовуватиMaybe (або щось подібне). Однак я здивований, побачивши, що всі "відомі" імперативні або об'єктно-орієнтовані мови програмування все ще використовують null(що дозволяє неперевірений доступ до типів, які можуть представляти значення "нічого"), …

16
Я пишу про синтаксис мови. Чи існує там мова, параметри якої розміщені всередині назви методу?
у JavaScript: function getTopCustomersOfTheYear(howManyCustomers, whichYear) { // Some code here. } getTopCustomersOfTheYear(50, 2010); в C #: public List<Customer> GetTopCustomersOfTheYear(int howManyCustomers, int whichYear) { // Some code here } List<Customer> customers = GetTopCustomersOfTheYear(50, 2010); в PHP: public function getTopCustomersOfTheYear($howManyCustomers, $whichYear) { // Some code here } $customers = getTopCustomersOfTheYear(50, 2010); Чи …

30
Яка найбільша вада дизайну, з якою ви стикалися в будь-якій мові програмування? [зачинено]
Усі мови програмування мають свої недоліки в дизайні просто тому, що жодна мова не може бути ідеальною, як і більшість (усіх?) Інших речей. Що убік, яка помилка дизайну в мові програмування вас найбільше дратувала через вашу історію як програміста? Зауважте, що якщо мова "погана" лише тому, що вона не розроблена …

4
Як мови програмування визначають функції?
Як мови програмування визначають і зберігають функції / методи? Я створюю інтерпретовану мову програмування в Ruby, і я намагаюся зрозуміти, як реалізувати декларацію функції. Моя перша ідея - зберегти вміст декларації на карті. Наприклад, якщо я зробив щось подібне def a() { callSomething(); x += 5; } Тоді я б …

3
Для чого потрібне ключове слово rec у F #?
У F # необхідно використовувати recключове слово. У Haskell немає необхідності чітко вказувати, чи є дана функція рекурсивною чи ні. Враховуючи роль рекурсії у функціональному програмуванні, дизайн F # здається мені досить дивним. Це гарне мовне рішення або воно існує лише з історичної причини або через обмеження щодо впровадження?

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

6
Які застереження щодо реалізації фундаментальних типів (наприклад, int) як класів?
При проектуванні і implenting об'єктно-орієнтована мова програмування, в якій - то момент один повинен зробити вибір про реалізацію основних типів (як int, float, doubleабо їх еквіваленти) , як класи або що - то інше. Зрозуміло, що мови в сім'ї С мають тенденцію не визначати їх як класи (Java має спеціальні …

10
Мова програмування, коли кожен виклик / блок функції виконується в окремому потоці? [зачинено]
Закрито . Це питання має бути більш зосередженим . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно зосередило увагу на одній проблемі, лише відредагувавши цю публікацію . Закрито 2 роки тому . Наразі я створюю мову програмування для розваги, де ідея полягає в тому, що кожен …


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

5
Що робити, якщо я ненавиджу файли заголовків C ++?
Мене завжди бентежили файли заголовків. Вони такі дивні: ви включаєте .h файл, який не включає .cpp, але .cpp теж якось компілюється. Нещодавно я приєднався до командного проекту, і, звичайно, використовуються і .h і .cpp. Я розумію, що це дуже важливо, але я не можу жити, коли копіюємо кожну декларацію функції …

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