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

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

4
Чи потрібен збір сміття для забезпечення безпечного закриття?
Нещодавно я відвідував онлайн-курс з мов програмування, на якому, серед інших концепцій, були представлені закриття. Я записую два приклади, натхненні цим курсом, щоб дати деякий контекст, перш ніж ставити своє запитання. Перший приклад - функція SML, яка створює список чисел від 1 до x, де x - параметр функції: fun …

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

2
Чому вихідний файл Java має ім'я публічного класу, який він містить?
Я новачок, що навчається Java. У Java кожен вихідний файл повинен містити загальнодоступний клас, і цей вихідний файл повинен мати те саме ім'я, що і цей публічний клас. Більше того, жоден вихідний файл не може містити два загальнодоступні класи. Чому це обмеження?

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

11
Принцип KISS застосовується для розробки мови програмування?
KISS ("тримайте це просто, дурно" або "тримайте його просто дурним", див. Наприклад, тут ) є важливим принципом у розробці програмного забезпечення, навіть незважаючи на те, що воно, мабуть, виникла в техніці. Посилаючись на статтю у Вікіпедії: Цей принцип найкраще пояснюється історією того, як Джонсон вручив команді інженерів-конструкторів кілька інструментів, з …

1
Чому додавання до списку в Scala має складну часові (O) n?
Я щойно прочитав, що час виконання операції додавання для List(: +) лінійно зростає з розміром List. Звернення до Listздається схоже на досить поширену операцію. Чому ідіоматичний спосіб зробити це - попередньо допомігши компоненти, а потім змінити список? Це також не може бути помилкою дизайну, оскільки реалізація може бути змінена в …

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

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

2
Переваги та недоліки структурування всього коду за допомогою класів та компіляції до класів (наприклад, Java)
Редагувати: моя мова дозволяє багаторазово успадкувати, на відміну від Java. Я почав розробляти та розробляти власну мову програмування для навчальних, рекреаційних та потенційно корисних цілей. Спочатку я вирішив базувати її на Java. Це означало, що весь код буде записаний у формі класів, і що код збирається у класи, які завантажуються …

5
Переваги класичного OOP над Go-подібною мовою
Я багато думав про дизайн мови та про те, які елементи будуть потрібні для "ідеальної" мови програмування, а вивчення Google Go Go спонукало мене до сумнівів у багатьох інакше загальних знаннях. Зокрема, Go, здається, має всі цікаві переваги від об'єктно-орієнтованого програмування, не маючи насправді жодної структури об'єктно-орієнтованої мови. Не існує …

4
Що Рубі зробив правильно (чи це був Рейлс)? [зачинено]
Закрито . Це питання ґрунтується на думці . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб на нього можна було відповісти фактами та цитатами, відредагувавши цю публікацію . Закрито 6 років тому . Більшість мов програмування мають деякі дизайнерські рішення, які впливають на їх використання та застосовність. …

5
Чи є певна мета гетерогенних списків?
Виходячи з фону C # та Java, я звик, щоб мої списки були однорідними, і це має для мене сенс. Коли я почав збирати Лісп, я помітив, що списки можуть бути неоднорідними. Коли я почав накручувати dynamicключове слово в C #, я помітив, що, як і для C # 4.0, …

3
Навіщо тобі потрібно «я». в Python для позначення змінних екземплярів?
Я програмував на декілька мов, таких як Java, Ruby, Haskell і Python. Мені доводиться перемикатися між багатьма мовами на день через різні проекти, над якими я працюю. Тепер проблема полягає в тому, що я часто забуваю писати, selfяк перший параметр у визначеннях функції в Python те саме відбувається з методами …

1
Чи включають будь-які помітні розширення C цілі типи, поведінка яких не залежить від розміру машинного слова
Цікавою характеристикою C порівняно з іншими мовами є те, що багато типів даних базуються на розмірі слова цільової архітектури, а не в конкретних значеннях. Хоча це дозволяє використовувати мову для запису коду на машинах, які можуть мати труднощі з певними типами, це дуже важко розробити код, який буде працювати послідовно …

9
Десяте правило Грінспана, чи кожен великий проект включає перекладача Ліспа? [зачинено]
Закрито . Це питання ґрунтується на думці . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб на нього можна було відповісти фактами та цитатами, відредагувавши цю публікацію . Закрито 6 років тому . Десяте правило Грінспана (фактично єдине правило) говорить: Any sufficiently complicated C or Fortran program …

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