Тема: як створюються мови програмування?

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

С++ головного мозку
Розмовляю Українською, пишу С+плюсом

2

Re: як створюються мови програмування?

Dragon Book

Maybe a = Just a | Nothing
Подякували: 0xDADA11C7, bees, Yola, leofun014

3

Re: як створюються мови програмування?

Як пишуться мови програмування?

вчить програміст мову програмування, потім бачить один, або декілька фатальних недостатків і пишить свою мову, все

- Поганому трояну фаєрвол заважає
- Ніколи не програмуйте та не пийте пиво
Якщо ви з першого разу написали програму, в якій немає жодної помилки, повідомте про це системного програмісту: він виправить помилки в компіляторі

4 Востаннє редагувалося КиївОболонь (18.11.2015 23:26:00)

Re: як створюються мови програмування?

reverse2500 написав:

Як пишуться мови програмування?

вчить програміст мову програмування, потім бачить один, або декілька фатальних недостатків і пишить свою мову, все

Це зрозуміло. Але ж воно не так просто, як звучить. До того ж не всі програмісти (навіть якщо вони дійсно програмісти) пишуть свою мову (та й щоб це було би, якщо б всі нормальні програмісти писали свою мову - мов було б зараз не 1 тисяча)

С++ головного мозку
Розмовляю Українською, пишу С+плюсом

5

Re: як створюються мови програмування?

А зараз мов і не 1 тисяча, дай боже щоб в 20 тисяч уклалося :P Тисяча то мабуть тільки для спектруму 81 року випуску назбирається

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»
Подякували: koala1

6

Re: як створюються мови програмування?

Але ж воно не так просто, як звучить.

Дурниці: http://procoder.info/index.php/entry/ko … niya-ch-1/

7

Re: як створюються мови програмування?

Itari написав:

Але ж воно не так просто, як звучить.

Дурниці: http://procoder.info/index.php/entry/ko … niya-ch-1/

Наприклад, це так. А як тоді щодо створення ВІЗУАЛЬНИХ мов програмування?

С++ головного мозку
Розмовляю Українською, пишу С+плюсом

8

Re: як створюються мови програмування?

0xDADA11C7 написав:

А зараз мов і не 1 тисяча, дай боже щоб в 20 тисяч уклалося :P Тисяча то мабуть тільки для спектруму 81 року випуску назбирається

А так, можливо би був навіть не 1 мільйон. А що дає така велика кількість мов програмування? Та й замовнику все одно на чому програмується - головне, щоб було

С++ головного мозку
Розмовляю Українською, пишу С+плюсом

9

Re: як створюються мови програмування?

Спеціалізацію дає така велика кількість мов програмування, більшість з них заточені під якісь конкретні задачі.

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»

10 Востаннє редагувалося Itari (20.11.2015 07:48:35)

Re: як створюються мови програмування?

як тоді щодо створення ВІЗУАЛЬНИХ мов програмування?

Візуальних мов програмування не існує. Є лише мови програмування, а у якій галузі це не стосується самої мови.
Тобто тебе мабудь цікавить як розробити IDE? Чи як?
Що ти називаєш словом "візуальне"? 3DMax Script це візуальна мова? AutoLISP це візуальна?

замовнику все одно на чому програмується - головне, щоб було

Припустимо ти замовник. Ти зробив заказ фрілансеру, який вирішив твоє завдання якісно та швидко. Але по-свойому. На своєї мові, яку він розробив самотужки. Потім тобі стало потребувати дописати проєкт, дешо покращити, дещо добавити... а розробник хутко зник. У Гуглу його запросили, і він пойхав до Америки.
Ось скажи тепер, хто візьметься з інших фрілансерів твоє завдання вирішувати, не мавши й гадки що це за мова така, яку ти їм підсовуєш.
Так що ні. Вибір мови це теж важливо для замовників, бо інакше можна сісти у калюжу, коли нікому буде обслуговувати їх заказ.

Подякували: leofun011

11

Re: як створюються мови програмування?

Ну, є scratch і якісь ще родичі. Все решта - це не візуальне програмування, це візуальне створення інтерфейсу. А програмування як було, так і лишається текстовим.

12

Re: як створюються мови програмування?

Є ще таке: https://ru.wikipedia.org/wiki/ISaGRAF. Теж дозволяє намалювати програму під контролер.
LabView теж здається так може.

Подякували: 0xDADA11C71

13

Re: як створюються мови програмування?

Їх реально тисячі! Одні розроблені для конкретних потреб (C++), інші виросли з хобі (Python). Одні вже виросли до монстрів (Java), інші ще лишень навчились себе компілювати (D).

Оскільки всі ці тисячі мов програмування створені людиною, щоб не ламати собі мізки, розбираючись з кодами процесора, то вони й зрозумілі людям, кому більше, кому менше. Хтось умудряється вивчити по кілька мов, хтось одну, але досконало.

Але представте собі мови програмування, створені штучним інтелектом! Ми їх вже не будемо розуміти. В майбутньому ми будемо ставити задачу, а штучний інтелект буде її вирішувати. Мови програмування вимруть.

14

Re: як створюються мови програмування?

Itari написав:

як тоді щодо створення ВІЗУАЛЬНИХ мов програмування?

Візуальних мов програмування не існує. Є лише мови програмування, а у якій галузі це не стосується самої мови.
Тобто тебе мабудь цікавить як розробити IDE? Чи як?
Що ти називаєш словом "візуальне"? 3DMax Script це візуальна мова? AutoLISP це візуальна?

Мається на увазі не абсолютно візуальні, а візуалізовані, як наприклад середовище Delphi або ж C++Builder

С++ головного мозку
Розмовляю Українською, пишу С+плюсом

15

Re: як створюються мови програмування?

Побудова графічних інтерфейсів має невеликий стосунок до власне мови.

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»

16

Re: як створюються мови програмування?

Щодо середовищ візуальної розробки, то, мені здається, що тут все починається з паттерна. От у .NET WPF використовується MVC. Коли паттерн відомий, під нього розробляються засоби. У цьому конкретному випадку доадли спеціальну мову xaml, і звісно, багато візуального приладдя - різноманітних форм, щоб налаштовувати властивості об'єктів.

ukrainian.stackexchange.com - це питання-відповіді з української мови

17 Востаннє редагувалося Itari (22.11.2015 09:58:13)

Re: як створюються мови програмування?

як наприклад середовище Delphi або ж C++Builder

Це лише конструктори. Воні не прив'язані до мови, тому й Делфи й Білдер мають одне ядро на двох. IDE одну на двох. Навіть компілятор там один.
Тебе цикавить створення конструктора чи все ж таки самої мови?

тут все починається з паттерна

Паттерни це лише рекомендації. Яб не став зв'язувати їх з мовами програмування.

18

Re: як створюються мови програмування?

Рекомендую глянути ось таку штуку https://www.jetbrains.com/mps/

19

Re: як створюються мови програмування?

Itari написав:

Паттерни це лише рекомендації. Яб не став зв'язувати їх з мовами програмування.

Йдеться про пов'язування паттерна не з мовою, а з середовищем розробки. Хоча деякі мови саме й розроблені для певного набору шаблонів.

ukrainian.stackexchange.com - це питання-відповіді з української мови

20 Востаннє редагувалося raxp (22.11.2015 16:07:22)

Re: як створюються мови програмування?

це основи для практики, але в контексті сабжа рекомендував би почитати в нашому журналі про створення персональної мови програмування від Віктора Кона (випуск №1 и 11) http://raxp.radioliga.com.

SCADA - це не мова програмування, вони там можуть використовуватися, так. SCADA - це система проектування і візуалізації (мнемосхема) технологічних процесів і взаємодії з ними через мови МЕК, скрипти і нативні мови (Сі, Паскаль, VB), вважай солянка на догоду універсальності.

Візуальних мов програмування не існує. Є лише мови програмування
намалювати програму під контролер

слід відокремити мух від котлет. Існує, ще як існує. Що відбувається з кодом на звичайних мовах програмування в кінцевому підсумку? Правильно, вiн компілюэться в байт-код в підсумку, в код машинних інструкцій. Те ж саме і з графічними мовами. Синтаксичні примітиви просто підміняються графічними. Простий приклад - оператор присвоювання або запис значення в регістр підміняються сполучною лінією і т.п.

Графічні мови нерозривно пов'язані з середовищем їх проэктування та компіляції і знайшли застосування для інженерного програмування не тільки окремих контролерів, але і промислових ПЛК, навіть ПЛІС:

  • FLProg

  • Алгоритм-Билдер

  • Дракон

  • Ladder Logic for PIC and AVR

тощо.

Порівнювати візуальний або схемотехнічний спосіб проектування з написанням коду дещо некоректно. Різний підхід, різні переваги, різні недоліки. Не бачу сенсу порівнювати, цi речі не конкуренти, вони просто різні і взаємодоповнюючі. Взяти той же Altium, ISE.

Трошки оффтопу

Якщо говорити про ПЛІС: "Візуальний алфавіт" грунтується на елементарній логіці з якої можна побудувати все. Обмеження лише в кількості макроблоків (осередків), тобто пам'яті. У МК теж саме, обмеження пам'яті. Коду в схемотехнiчнiй реалізації як такого немає, все транслюється в елементарні базиси і схему з'єднань і розробнику не показується. У той же час, в тих же ПЛІС середовищами підтримується паралельно з графічним і C/Pascal-подібні AHDL/VHDL, які в підсумку все одно транслюються в елементарний базис. Зручність - так, симулятори дають можливість налагодження. Але чим він краще або гірше симулятора в тому ж Протеус? Та нічим, і там і там віртуальна лабораторія, під своє залізо.

Тому порівнювати середовища з різним підходом, нонсенс. Ось прийшов кіповец, йому потрібно щось запрограмувати в AVR. Що йому робити? Або вивчати Сі, або за пару хвилин накидати релейну робочу схему. І в той же час, прийшов програміст, який не розуміє в релейних схемах, але при реалізації алгоритму задачі вирішить ту ж задачу в ПЛК при наявності можливості написання FBD-блоків. Я не говорю про універсалiв.

Резюмуючи

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

Білоруський журнал «Радиолюбитель»
Lead Radar systems engineer & Software developer of industrial automation
Мої розробки та відеоблог
Подякували: Yola, leofun012