LINUX.ORG.RU
ФорумTalks

Компилятор русского языка программирования Кумир

 


0

3

Я написал компилятор языка Кумир. Можно запускать программы как в интерпретаторе, так и компилировать в исполняемый файл или webasm. Есть онлайн-версия

Пробовать можно тут: https://qumir.dev/

Ссылка на гитхаб: https://github.com/resetius/qumir

Онлайн сервис написан на C++: https://github.com/resetius/qumir/blob/master/service/server.cpp

Для http используется мой собственный фреймворк: https://github.com/resetius/coroio

★★★★★

Последнее исправление: Reset (всего исправлений: 5)
Ответ на: комментарий от firkax

Эээ чё? Зачем определять расстояние до большого пальца?

Я исправил же. Не до пальца, а до объекта вдали, конечно.

Там два варианта, кстати. Есть через параллакс — одним глазом и другим, насколько отклоняется объект от пальца. Есть просто через то, как палец закрывает объект визуально. К какому из них точно относится происхождение «правила большого пальца», сложно сказать.

Не знаю насчёт калек с греческого (вроде греки с русскими не особо пересекались исторически вообще)

Очень сильно пересекались на почве христианства, переводов религиозных книг и прочего подобного. Оно всё через греческий приходило. Вместе с терминологией, кальками, обучением грамоте и т.д.

даже если так, то глупости прошлого, даже если они и были, уже забыты (а последствия остались). Глупости же настоящего торчат на виду и раздражают.

Кальки, как и заимствования — это естественные явления в любом языке, а не глупости. Их можно, конечно, считать глупостями, в том смысле, что происходит это всё всегда эволюционно, а не по чьему-то рациональному обдуманному решению, но так уж устроены живые языки — они развиваются стихийно, а не проектируются.

Вроде как было. Чтобы проверить надо найти ту тему.

Не было. В моём сообщении есть ссылка на тему.

Вот цитата:

Телеканал заинтересовался молодым человеком, который является сыном Ирины Усольцевой, поскольку тот представил путаные сведения о странице своего отчима.

Как выяснил блогер Александр Андрюшенков, страница Усольцева-старшего была онлайн 3 октября — спустя неделю после пропажи семьи.

В ней нет ни слова о соцсетях.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от CrX

Кальки, как и заимствования — это естественные явления в любом языке, а не глупости. Их можно, конечно, считать глупостями, в том смысле, что происходит это всё всегда эволюционно, а не по чьему-то рациональному обдуманному решению, но так уж устроены живые языки — они развиваются стихийно, а не проектируются.

Не надо обобщать. Если бы я хотел сказать что все кальки глупые, я бы написал по-другому. Но я написал «глупая калька», «глупая» тут это уточнение свойств конкретно этой кальки, из чего следует что бывают и другие. В данном случае слово «правило» тут совершенно не к месту и нелепо, его перевели тупым машинным переводом, а затем кто-то читал тексты, переведённые тупым машинным переводом и, вместо того чтобы плеваться от них, принял всё за истину (что свидетельствует о глупости читателя в том числе). И вот так вот родилась эта калька, очевидно её следует называть глупой.

В ней нет ни слова о соцсетях.

И правда нет. Ну, они не правы. Но контекст соцсетей тут всё-таки есть, неявно: авторы новости, судя по всему, считают что все пользуются соцсетями и их контекст не требует явного указания. А во-вторых, авторы новости, кажется, не знают про значение слова «страница» в нормальном смысле. Осуждаю.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Не надо обобщать. Если бы я хотел сказать что все кальки глупые, я бы написал по-другому. Но я написал «глупая калька», «глупая» тут это уточнение свойств конкретно этой кальки, из чего следует что бывают и другие

Ну вот на мой взгляд, эта конкретная калька не глупая. Существование глупых и раздражающих я не отрицаю, кстати

В данном случае слово «правило» тут совершенно не к месту и нелепо, его перевели тупым машинным переводом

Да почему же? Как раз речь о правиле, а не о законе например. Здесь перевод как раз таки как никогдаь точный и подходящий. У нас даже есть прекрасное выражение «как правило», прекрасно демонстрирующее отличие правила (в данном значении) от закона, аксиомы, теоремы или чего-то там ещё.

CrX ★★★★★
()
Ответ на: комментарий от CrX

Большие пальцы у нас не отличаются, сам феномен выставления большого пальца перед собой и закрывания то одного то другого глаза для определения по параллаксу расстояния до далёкого объекта одинаково знаком или не знаком как англоязычным, так и русскоязычным.

Чёт сложно. Мне подумалось что-то типа: работает — 👍, нет — 👎.

papin-aziat ★★★★★
()
Ответ на: комментарий от firkax

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

А вот это было сильно 😁

papin-aziat ★★★★★
()
Ответ на: комментарий от CrX

Очень сильно пересекались на почве христианства, переводов религиозных книг и прочего подобного. Оно всё через греческий приходило. Вместе с терминологией, кальками, обучением грамоте и т.д.

Я б всё-таки начал ликбез с наших разбойников витязей, которые регулярно плавали грабить византийцев 🙂

papin-aziat ★★★★★
()
Ответ на: комментарий от CrX

«Правило большого пальца» звучит глупо и коряво, а для большинства русскоязычного населения просто непонятно. Еще мне очень нравятся современные «дорожные карты». Кто-нибудь видел дорожную карту в глаза? Вот это тема!

VIT ★★
()
Ответ на: комментарий от Reset

Только нужно ещё чтобы были указатели и структуры (record, struct или как там), тогда можно будет что-то писать на нём.

А не было мысли сделать компилятор self-hosted, то есть чтобы он был написан на самом же кумире?

Xenius ★★★★★
()
Ответ на: комментарий от VIT

Я чуствую это устойчивое сочетание не как «пальцем в ж.», а скорее «как устоялось на практике». Оно не используется в смысле «я хрен знаю как, поэтому пусть так». Оно обычно имеет смысл «я не знаю почему, но всегда так делали и это работало».

VIT ★★
()
Ответ на: комментарий от Xenius

У меня есть мысль это сделать. Но надо будет в прагмы оборачивать, чтобы сохранить совместимость. Указатели есть на нижнем слое кстати. Через них делается передача аргументов по ссылке (Модификатор «арг рез» в аргументах функции)

Reset ★★★★★
() автор топика
ф := открыть на чтение("test.goy")

путь же

Anoxemian ★★★★★
()
Ответ на: комментарий от Reset

Я ради интереса поползал по приведённым ссылкам и не нашёл формального описания языка. Возможно, его и нет вообще, и он модифицируется в процессе написания. Не нашёл, как определяется точка входа. Не нашёл традиционный «goto », кстати если это будет звучать как «перейти на», то точно не преживётся.

Забавно. Я в своё время для подобного преподавания в вузе использовал зарубежную системы на основе паскаля, и уже тогда студенты стонали, что я даю устаревший материал, нужно C++. Сейчас я бы делал курс программирования с использованием питона.

VIT ★★
()
Ответ на: комментарий от VIT

Паскаль всё ещё лучше для обучения чем что угодно другое.

Xenius ★★★★★
()
Ответ на: комментарий от VIT

Я ради интереса поползал по приведённым ссылкам и не нашёл формального описания языка.

Его нет. Я использую документацию к оригинальному Кумиру и работы Полякова.

Не нашёл, как определяется точка входа.

Первая функция это точка входа. Если функция с аргументами, то их надо передать.

Не нашёл традиционный «goto »

Его нет в языке

Reset ★★★★★
() автор топика
Ответ на: комментарий от Reset

Я ради интереса поползал по приведённым ссылкам и не нашёл формального описания языка.

Его нет. Я использую документацию к оригинальному Кумиру и работы Полякова.

Пусть студенты сделают. У них должен быть курс формальных грамматик - вот и тема курсовой.

Первая функция это точка входа. Если функция с аргументами, то их надо передать.

Интересно, значит нет методов включения дополнительных функций, хранящихся во внешних файлах. Или их можно включать только после первой функции. Непрактично, ну допустим.

Не нашёл традиционный «goto »

Его нет в языке

Очень плохо, когда преподавателем управляет религия, а не практика, знания, и здравый смысл.

VIT ★★
()
Ответ на: комментарий от Xenius

Это не важно. Язык задумывался для обучения. Если он непрактичен, студенты вам всё время будут об этом говорить, а студенты на программистких курсах уже достаточно нахватавшиеся по верхам, чтобы иметь собственное мнение о правильности-неправильности. Оператор безусловного перехода, как и оператор условного перехода - базовые понятия конструрирования алгоритма. Включениие одно и не включение другого - религиозное решение.

VIT ★★
()
Ответ на: комментарий от VIT

Это же касается паскаля. Прекрасный язык для обучения, но абсоютно оторван от реальности и непрактичен. Поэтому лучше исключить в пользу питона.

VIT ★★
()
Ответ на: комментарий от VIT

Нет, паскаля не касается. На нём можно писать полноценные программы, которые можно использовать на практике. Ну FreePascal по крайней мере это позволяет.

А вот Кумир - он да, в нём нет некоторых базовых вещей, которые есть в остальных императивных языках. Насколько я помню из критичного только указатели и записи/структуры. Без этого нельзя построить структуры данных сложнее чем обычные массивы.

Xenius ★★★★★
()

компилятор

Собиратель кодов русских.

Nervous ★★★★★
()
Ответ на: комментарий от Xenius

Хорошо, я напишу это слово «практичность!» в третий раз и попытаюсь вновь объяснить, что паскаль - не годится для преподавания сегодня. Если не смогу, значит не судьба.

В Союзе преподавателю было по большому счёту всё-равно, какой материал он даёт. Главное, чтобы соответствовало требованиям программы. Мнение студентов никто не спрашивал.

Приехав в США, мне пришлось кардинально изменить свою точку зрения. Преподаватель - это так же, как и врач, учёный, или сантехник - прежде всего продавец своих знаний и умений на рынке. Рынок преподавателя - студенты. Если студенты не покупают твой курс, то ты идёшь в сантехники. Подумайте, почему Ершова невозможно читать нормальному студенту. Я вам отвечу, потому что Ершов писал для себя, а не для студентов. Здесь будь ты трижды академиком, но если ты не можешь связно излагать свою мысль, то ничего не продашь, а значит не добьёшься успеха. Нигде.

VIT ★★
()
Ответ на: комментарий от pandrey

Я думал, что такое было только у нас.

Да, думать учили и мыслить.

sparkie ★★★★★
()
Ответ на: комментарий от VIT

Еще мне очень нравятся современные «дорожные карты». Кто-нибудь видел дорожную карту в глаза? Вот это тема!

Спасибо за пример действительно глупой кальки. «Дорожная карта» и правда звучит нелепо и является как минимум «картой дорог» даже при переводе в лоб, а как максимум чем-то более конкретным со своим названием. Но вот с правилом большого пальца не так, это именно правило большого пальца, а не что-то другое. Разница в том, что это хороший, точный (не всегда значит дословный, речь о смысле) перевод.

CrX ★★★★★
()
Ответ на: комментарий от CrX

Но вот с правилом большого пальца не так, это именно правило большого пальца

Я никогда не слышал выражение «правило большого польца». Судя по дискуссии, я не один.

VIT ★★
()
Ответ на: комментарий от VIT

Правду сказать, выражение «the rule of thumb» тоже не так, чтобы очень распространено. В магазине я как-то его ни от кого не слышал. Специфическая лексика, больше характерная для научной среды в окружении экспериментаторов.

VIT ★★
()
Ответ на: комментарий от VIT

Это правда. Русский язык медленно, но верно продолжает обогащаться в том числе и грамотными кальками с других языков. Хорошо!

fixed ;)

CrX ★★★★★
()
Ответ на: комментарий от Reset

Ясно.

...мой опыт разработки SQL движка подходит для разработки компилятора языка программирования.

ИМХО, более чем.

...пока окончательно не выкинул...

И не выкидывай. Пригодится.

sparkie ★★★★★
()
Ответ на: комментарий от CrX

Ну или так, хотя мой вариант точнее передаёт происходящее и отражает личное к нему отношение. Посмотрим, переживёт ли это обогащение хотя бы пару поколений.

VIT ★★
()
Ответ на: комментарий от Beewek

А на какое русское слово намекает «лит»? Мне кроме «литера» ничего в голову не пришло.

На Великую Русскую Литературу!

slackwarrior ★★★★★
()
Ответ на: комментарий от CrX

«Дорожная карта» и правда звучит нелепо и является как минимум «картой дорог» даже при переводе в лоб, а как максимум чем-то более конкретным со своим названием.

А мне как-то представляется, что дорожная карта это не просто карта, а именно маршрут, причем наилучший по мнению продвигающего дорожную карту. Не правильно?

papin-aziat ★★★★★
()
Ответ на: комментарий от Beewek

Мне кроме «литера» ничего в голову не пришло.

Это еще хорошо что указателей нет. А то был бы какой-нибудь...«УКЛЬ», как в одном из чятегов строителей кириллических конпеляторов, на основе лута, выпавшего из Вирта.

slackwarrior ★★★★★
()
Ответ на: комментарий от VIT

Оно обычно имеет смысл «я не знаю почему, но всегда так делали и это работало».

Вот именно, rule of dumb подходит тоже. Это совпадение что слова похожие или нет?

firkax ★★★★★
()
Ответ на: комментарий от papin-aziat

Нет, всё правильно. Я имел в виду, что даже если бы мы переводили не в контексте какого-нибудь, например, IT-проекта, а имея в виду прямо вот буквально карту, этот перевод был бы всё равно странным, хотя бы потому, что такая карта являлась бы именно картой дорог, а некой картой с прилагательным «дорожная», как сумка или пыль. «Дорожной картой» это было бы, если бы сама суть информации там была бы точно такой же, как и у обычной, но например, она была бы в формате/размере, в котором её удобно взять с собой в дорогу. То есть, это именно кривой перевод в любом случае — хоть в самом прямом смысле, хоть в переносном. А так да, в том контексте, в котором это реально используется — это про некий маршрут или даже про планирование. Хороший аналог я прям вот так сейчас не приведу, но скорее это что-то вроде «плана работ», куда-то в эту сторону.

CrX ★★★★★
()
Ответ на: комментарий от VIT

Это же касается паскаля. Прекрасный язык для обучения, но абсоютно оторван от реальности и непрактичен.

как это?

madcore ★★★★★
()
Ответ на: комментарий от VIT

Не надо выдумывать. У него всего два с половиной недостатка:

1) (самый главный) ядра ОС и системные библиотеки ОС (libc) написаны не на нём, а значит он не нативен для современных ОС (нативен только Си и почти С++).

2) слишком многословен (хотя, если посмотреть как многие агитируют писать на Си, вставляя кучу лишних переводов строк, пробелов и делая длинные названия всего подряд - для них это не будет недостатков)

3) (поовина) нет сишной механики строк и указателей, когда можно сделать return s+10 для возврата строки с 10-й позиции но это в целом уже не так критично и даже немного поправимо

Всё остальное в нём прекрасно (включая ООП-модель которая лучше чем С++-ная).

firkax ★★★★★
()
Ответ на: комментарий от VIT

Приехав в США, мне пришлось кардинально изменить свою точку зрения

fix: приехав в США, ты прогнулся под убогие западные нормы

firkax ★★★★★
()
Ответ на: комментарий от papin-aziat

Что это такое?

Это из электродинамики. Посмотрел - всё-таки на английском right-hand rule называется. Это частный случай rule of thumb. В общем случае переводить rule of thumb как «правило правой руки» не надо.

Rule of thumb — эмпирический метод.

Ну да. Только стилистический регистр повышается с разговорно-нейтрального до книжного, что не всегда желательно. Предлагаю вбить в «Мультитран» и насладиться обилием контекстуальных переводов.

бывает, так человек переведёт, что лучше оригинала получится 🙂

Бывает.

Vidrele ★★★★★
()
Ответ на: комментарий от madcore

А вот никак, чтобы для всех ситуаций подходило. Но в зависимости от контекста можно обозвать разными сочетаниями со словом «план» во главе. План работ, план разработки, план выпуска, план реализации, даже план релизов (хотя я понимаю, что тут пуристы ещё и к релизам придерутся) и т. д., смотря о чём именно речь.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)