Русские вычислители

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Русские вычислители » Русский язык программирования: от слов к делу » Русский язык программирования - с чего начать?


Русский язык программирования - с чего начать?

Сообщений 1 страница 100 из 153

1

Хотел бы перевести русло наших разговоров от слов к делу. От выпускания пара в свисток к тому, что беспокоит наши умы. А именно к русскому языку программирования. Его нужно создавать. С чего начать?

Путь 1. Взять за основу что-то имеющееся, а потом его развивать. «Взять» 1С нам никто не позволит, исходных кодов нет. «Афина»? Так же, как и 1С, она заточена под определённые задачи; если мы хотим уготовить своему языку узкую нишу, то это не есть хорошо. Глагол, самый продвинутый из пока существующих? Но он основан на идеях 30-летней давности. Ещё многим не понравится его "обероноподобность".

Путь 2. Разрабатываем язык с нуля. Определяемся с парадигмой, синтаксисом, семантикой, способами воплощения, языком, на котором будем писать. Пишем формальное определение языка, пишем документацию (допустим, на wiki). Вероятно, многие тут уже знают, что я подобным начал заниматься на compiler.su . Не навязываю своего видения, своей площадки для обсуждения – предлагайте своё.

Можно долго приятно убивать время, рассуждая о сущности бытия, но было бы полезнее что-то творить. Поэтому и предлагаю эту тему: с чего начать?

И второй вопрос: кто готов этим заниматься? Готов ли кто-то поступаться в чём-то своими принципами типа: "если не паскалеподобный синтаксис, то обходитесь без меня; если в языке будут термины иностранного происхождения, то я этим заниматься не буду".

0

2

Языки разные бывают. Надо определиться, что именно и зачем делаем. Императивный язык, функциональный, логический. С ООП и прочими заморочками или наоборот.

если не паскалеподобный синтаксис

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

0

3

Да, и русский ассемблер (автокод) для современных процессоров бы не помешал. Здесь как раз нужна совместная работа по подбору слов (в этом, собственно, и заключается вся работа).

0

4

Вот это ближе к делу! А то одна болтовня, которая самому порядком надоедает.

Выбираем парадигму: http://progopedia.ru/paradigm/

Мне кажется, надо остановиться на гибридной, смешанной. Когда есть и процедурное программирование, ООП (или его элементы), и функциональное. Например, язык D пошёл по такому пути. И С++ туда же развивается.

Синтаксис. Мне кажется, Си-шный синтаксис следует рассматривать не в первую очередь. Как и Ruby/Basic. Синтаксис Паскаля/ Оберона мне лично отвратен. Синтаксис Питона мне видится более современным, хотя к нему должна быть хорошая IDE, что не пришлось прикладывать линейку к экрану.

Лично я задумывался о другом синтаксическом стиле, приглашаю посмотреть по ссылкам:
Стиль языка программирования
Условные операторы
Переключатель
Циклы
Продолжение цикла и выход из него

Дальше идёт вопрос: типизация статическая или динамическая? У каждого подхода свои плюсы и минусы.

Исполнение: откомпилированный код, интерпретация или байт-код?

Это всё надо обсуждать! Потому что завтра кто-то придёт и скажет: «Да у вас в языке подход отстойный, с вашим языком ничего хорошего не выйдет». Для такого случая должен быть ответ: «Вот наши обсуждения: если ты такой умный, то переубеди нас и мы сделаем по-твоему. Или сам переделай, а мы твою работу присовокупим.».

Да, и русский ассемблер (автокод) для современных процессоров бы не помешал.

Наверное, не самое срочное, ибо сейчас мало кому ассемблер нужен. Ну если только разработчики ОС «Колибри» попросят :)

0

5

Правильная тема, давно пора...

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

Отъ себя добавлю пожеланіе къ будущему языку, возможность выполненія отъ текста - тоесть какъ въ случаѣ съ Ява или бейсикъ машинами - очень удобно запустилъ текстовый файлъ копалка что-то сдѣлала, ну и обязательно компиляція въ исполнимыя файлы или библіотеки...

Собственно по русскому си я уже свою мысль когда-то высказывалъ - недостатокъ (обходимый) это щелканье раскладкой клавіатуры. Да и по сравненію съ оберономъ онъ таки подрѣвнѣе будетъ...

Вообще въ обероне меня лично привлекаетъ модульность, хотя понятіе размытое - тѣ же библіотеки то же самое, и мусорозборникъ - это въ теоріи вообще типа круто... Но на практикѣ все размыто...

0

6

Постоянное переключение ради рутинных “{}” действительно плохо. Тут либо надо остановиться на синтаксисе Питона с его отступами. Либо (моя идея) заменить “{}” на обычные скобки, они есть на обеих раскладках. Но положение скобок надо поменять, вот как это смотрится:

Код:
(если <условие>
    <операторы>
 если <второе условие>
    <операторы>
 если <третье условие>
    <операторы>
 иначе
    <операторы>
)

Одной скобкой начинается блок, другой заканчивается. Всё логично. И никаких "КонецЕсли". На Си это выглядело бы так:

Код:
if (<условие>)
{  <операторы>
}
else if (<второе условие>)
{   <операторы>
}
else if (<третье условие>)
{   <операторы>
}
else
{   <операторы>
}

Не правда ли, так экономнее, лаконичнее, да и красивее?

Модульность – это же всё обсуждаемо…

0

7

И кто сказал, что язык должен быть один? Предлагаю начать с чего-то простого, а потом наполнять набор русских инструментов более серьёзными вещами. А именно: предлагаю начать с автокода - задача состоит только в подборе русских слов. Дальше взять ассемблер, типа "FASM", дополнить набором русских слов, и готово. Заодно будет что-то типа стандарта на русские обозначения низкоуровневых команд.

0

8

Непонятно, что Вы хотели сказать. “{}”  отсутствуют на русской раскладке. Или надо делать что-то типа PuntoSwitch, чтобы оно само угадывалось?

Хотелось бы, работая в русской раскладке, не переключаться на латинскую из-за символов ` ~ @ # $ ^ & [ ] { } | \ ' < >, которых нет на русской раскладке.

предлагаю начать с автокода - задача состоит только в подборе русских слов. Дальше взять ассемблер, типа "FASM", дополнить набором русских слов

А надо ли так буквально менять английские аббревиатуры на русские?

Может, лучше так:

Код:
A += B    это ADD
C <= D    это MOVE
E ? F     это CMP

Очень наглядно. Евгений Зуев когда-то разрабатывал подобный ассемблер, ещё в советское время. Жаль, что ссылку потерял.

Да и не стоит начинать с ассемблера. Ну мало его кто использует! Если есть силы и желание, можно заняться потом.

0

9

Юрий написал(а):

Не правда ли, так экономнее, лаконичнее, да и красивее?

Да дѣйствительно правильное направленіе...

Русский написал(а):

Раскладки при подборе лексики ЯП учитывать не следует.

То-есть не отказываться отъ такихъ сѵмволовъ какъ $, &, {, }, [, ],  |, <, >,  отъ пяти послѣднихъ даже въ 1С не смогли отказаться, а это напрягъ между прочимъ... Хотя уже прошлое...

Отредактировано Е.В.Геній (20.07.2013 20:06:06)

0

10

Юрий написал(а):

Если есть силы и желание, можно заняться потом.

Собственно если языкъ будетъ компилируемый то безъ ассемблера ни какъ...

0

11

Может, лучше так:

Так-то оно, может, и лучше. Да вот незадача какая... Рассмотрим таблицу всяких ассемблерных сцущностей от Фасма. Слов там, на вскидку, больше тысячи. Сможете на каждое подобрать подобное обозначение?

То-есть не отказываться отъ такихъ сѵмволовъ какъ $, &, {, }, [, ],  |, <, >

А если микрософтовцы половину русских букв с этой раскладки уберут (как они уже сделали с Ё), будем снова менять правила русского языка?

0

12

А что съ "Ё" не такъ? Вродѣ на мѣстѣ какъ и была съ самаго доса ещё... Ладно лѣкарство отъ данной проблемы есть - раскладки хоть въ винде хоть въ линуксе легко мѣняются... А реальный программистъ все равно всё подъ себя тонко настроитъ...

0

13

Реальный программист, да и просто опытный пользователь не поленится воспользоваться редактором раскладок и поставить Ё на место. Но большинство новых пользователей скажет: "Ну раз так сделали, так и будем учиться печатать".

0

14

Опять новый форум? Да погодите, этот только начал работать. Со старого ушли – понятно почему. Хотя на этом форуме мне не нравится то, что нельзя устраивать голосований. Если бы это было на движке PHPbb, то там это можно. Пишите в текстовом редакторе, а потом вставляйте в форму, так текст не будет исчезать.

Спецсимволы для ассемблерных команд нужно использовать только для самых распространённых команд и для команд, смысл которых понятен: сложить, вычесть, умножить, делить, копировать.

Но без русского ассемблера можно всё равно можно обойтись. Если он будет «под капотом», не всё ли равно, что там? Программист будет работать только с текстом на языке высокого уровня.

И из схемы "ЯВУ ->  текст на ассемблере ->  файл exe" можно устранить среднее звено. Сразу писать двоичный код.

Есть масса способов обойтись без ассемблера. Например, транслировать в код на Си. Или в код LVVM или другой байт-код. Или в шитый код, как в Форте – этот подход мне очень нравится тем, что «и дёшево, и сердито», даже ассемблер знать не надо.

Всё это надо обсуждать и обдумывать. Если надо, давайте ещё ветки заведём под каждую тему: концепции языка; синтаксис; семантика; лексический анализ; синтаксический анализ; генерация кода; библиотеки; графический интерфейс; среда разработки… и т.д. и т.п. Главное, чтобы были люди, имеющие своё мнение по этим вопросам и готовые его изложить и обосновать.

0

15

> Опять новый форум?
Не новый, а нормальный.

> Со старого ушли – понятно почему
Почему?

> Спецсимволы для ассемблерных команд нужно использовать только для самых распространённых команд
Тогда какой в них смысл? Разумнее следовать единообразию.

Давайте для начала определимся, что мы хотим иметь на выходе и кто будет над этим работать.

0

16

Не новый, а нормальный.

А где Вы раньше были? На старом форуме я давно кинул клич, что надо его менять. И тишина... Никого этого не беспокоило. Ни у кого не возникло встречных предложений.

Почему ушли со старого? Да потому что там хозяин исчез. Регистрации новых пользователей нет. Поэтому новые пользователи не могли, например, послать личное сообщение старым. Чтобы заводить новые темы, нужны права администратора, которых ни у кого не было. "rusprog" на связь не выходил. Если тебе так всё по фигу - зачем форум заводил? Со спамом практически никто не боролся до тех пор, пока мне не дали права модератора - вот только тогда спам начал удаляться практически тут же, что отбило у спамеров охоту туда лезть.

А тут есть, по крайней мере, хоть бы 2 администратора. У Вас есть нарекания по работе администрации этого форума?

Разумнее следовать единообразию.

А в ЯВУ нет единообразия, одни вещи делаются операциями типа + - * /, а другие - вызовом функций. И ничего, никто не протестует. А вот написать "СЛОЖИТЬ" - это длиннее, чем "+", по клавишам долбить больше. И наглядности меньше. А если сократить до аббревиатуры, то "СЛЖ" - это ещё хуже.

Давайте для начала определимся, что мы хотим иметь на выходе

Давайте! Я, например, против того, чтобы распыляться ещё и на русский ассемблер. Тем более для начала без него можно легко обойтись. Потом, если русский ЯВУ будет готов и у кого-то будет желание, можно будет заняться.

Жаль, что тут голосовать нельзя. Мне кажется, вопрос "делать или не делать русский ассемблер" - это как раз решается через голосование.

0

17

Ну и последней каплей было это, после этого новый форум стал делом времени.

0

18

Интересное решение - создать новый форум на том же хостинге.

0

19

> А где Вы раньше были?
Предлагаете мне заняться новым форумом? Если бы я узрел наличие достаточного количества заинтересованных людей, создал бы давно. Иначе лень просто заниматься этим. Издатель Глагола, видимо, по этой причине и забросил проект и свой сайт. Ведь у него уже был готов новый выпуск, надо было исходники чуть подровнять, и можно было продолжать работу. А людей не нашлось. Где Вы и Ваши товарищи раньше были?

> У Вас есть нарекания по работе администрации этого форума?
В этом деле не нужен форум с администрацией. Тут нужно сообщество, которому сайт/форум будет служить средством совместной работы.

> А если сократить до аббревиатуры, то "СЛЖ" - это ещё хуже.
Такая практика традиционна, ничего плохого в этом нету. Посмотрите на тот же автокод БЭСМ-6.

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

> Потом, если русский ЯВУ
Ну вот есть Глагол, к примеру. Дальше что?

0

20

Ну, а что нормально такъ обсуждаемъ - скоро разговоръ перейдетъ въ разрядъ, что виноваты оказывается наши дѣды которые ещё тогда въ семидесятыхъ, должны были создать свой РЯП и пропіарить его такъ чтобъ всѣ буржуйскія гниды злобно завидовали нервно покуривая въ сторонкѣ... Не мужики про раньше позже - давайте изходить изъ того, что есть здѣсь и сейчасъ - насъ мало но мы въ тѣльняшкахъ... И одинъ въ полѣ воинъ коли онъ по руски скроенъ!

Я такъ понялъ тутошній Создатель сдулся какъ и Издатель и о доработкѣ Глагола можно теперь даже и не думать...

Мнѣ нравится концептъ Юрія создать языкъ съ нуля, но тутъ изначально много работы и работы не одному... - пожалуй надо бы вѣтку по самому синтаксису для начала и обсудить это дѣло. А тутъ все таки намѣтить тѣ направленія, что намъ нужны отъ нашего особеннаго языка...

0

21

Юрий написал(а):

Ну и последней каплей было это, после этого новый форум стал делом времени.

М-да... небылъ въ курсѣ... Весьма любопытно - кому же это такъ этотъ Глаголъ то навредилъ? Админы форума не причемъ, значитъ хостеръ - а кто настолько крутъ чтобъ черезъ хостера работать? Ужъ не увидали ли въ этомъ дѣлѣ конкурента? Какъ-то не похоже, что ажіотажикъ хотятъ создать...

0

22

Интересное решение - создать новый форум на том же хостинге.

А у меня не было претензий к хостингу. И у новых посетителей тоже не было. Была одна претензия: администрации нет, зарегистрироваться нельзя и проч... Вот и был создан новый форум на старом месте. А о том, что форум переносится - была рассылка. И Вы письма получали, да промолчали.

Издатель же Глагола ко мне не обращался. Я не видел его вопросов: "Каким должен быть язык?". Да и в тот момент, когда я с Глаголом познакомился, было поздно давать какие оценки и советы: всё было решено до меня. И вообще, все начали знакомиться с Глаголом, когда уже был готов компилятор. Я считаю такую позицию необоснованной.

Пишу не для того, чтобы кого-то ткнуть, вот, мол, какой я умный и предусмотрительный. Не хочу задевать кого-то. Я объясняю свои мотивы и стараюсь смотреть правде в глаза. Надо просто влезть в шкуру человека, который неудовлетворён положением дел с ЯП. Этот человек отзывчив, если с ним советуются. А если с ним не советовались, его мнением не интересовались (даже хотя бы через голосования), то и он будет прохладен к чьему-то творению.

Посмотрите на тот же автокод БЭСМ-6

Так ведь надо стремиться к совершенству! Придумайте, чтобы это было лучше, чем в БЭСМ. У предыдущего поколения не было ориентиров, они имели право на большее количество ошибок. А мы должны не только опираться на старый опыт, но и делать лучше.

Ну вот есть Глагол, к примеру. Дальше что?

А Вы спросите, кому нравится его "обероноподобность". И чтобы не зависеть от вкусовщины отдельных личностей, надо просто советоваться, обсуждать, голосовать. А так получается, что Издателю нравится, а мне - нет. Поэтому Издатель - сам по себе, и я сам по себе.

Я такъ понялъ тутошній Создатель сдулся какъ и Издатель

У меня есть подозрение, что он просто в отпуске. Всё-таки лето. Я тоже скоро пойду в отпуск и буду здесь гораздо реже. Ничего, отдохнёт и снова ветер будет дуть в паруса.

пожалуй надо бы вѣтку по самому синтаксису для начала

И не только по синтаксису. Вы уверены насчёт типизации? Уткин, к примеру, сторонник динамической типизации, Создатель, как мне кажется, тоже. А вот я - за статическую. Издатель выбрал статическую в Глаголе. И так по многим вопросам.

Насчёт веток подумаю и сделаю. Ну и Вы предлагайте! А то скинули на меня работу ;)

0

23

> Я такъ понялъ тутошній Создатель сдулся какъ и Издатель и о доработкѣ Глагола можно теперь даже и не думать...
Ну почему же? Исходники есть, были бы желающие работать над ними.

> И вообще, все начали знакомиться с Глаголом, когда уже был готов компилятор. Я считаю такую позицию необоснованной.
Есть готовый язык на основе Оберона. Вот база. Издатель принимал советы по его изменению. А обсуждать, каким делать язык, ему было, видимо, не с кем, приходилось всё делать самому. По-моему, следует радоваться, что есть что-то готовое, а не пустой трёп на тему "как должно быть".

> А мы должны не только опираться на старый опыт, но и делать лучше.
А кто из нас сделает лучше, чем разработчики БЭСМ-6?

> И чтобы не зависеть от вкусовщины отдельных личностей, надо просто советоваться, обсуждать, голосовать
С кем? Вместо того, чтобы создать что-то реально работающее, Издатель должен был заняться созданием сайта, поиском аудитории и разворачиванием обсуждений, которые бы, очевидно, ничем не завершились?

0

24

Есть готовый язык на основе Оберона. Вот база. Издатель принимал советы по его изменению.

Так есть не только Глагол. Есть Валентина, Суржи, Афина, ПРОФТ... Что из них лучше? Кто и где убедительно доказал, что Глагол лучше?

А почему на основе Оберона? А не Питона или Хаскела? Он единолично принимал решения, пусть даже выслушав советы. А он не пробовал объединить свои усилия ещё с кем-то, чтобы и язык был на основе согласованных решений, и дело двигалось быстрее? Только не надо говорить, что никто не захотел. Откуда-то появились другие языки, например Интерпретатор алгоритмического языка Владимира Мальцева. На кириллице, между прочим. Или язык "Элочка" - тоже на кириллице. Просто каждый хотел быть сам по себе, и Издатель, скорее всего, не был исключением.

Издатель должен был заняться созданием сайта, поиском аудитории и разворачиванием обсуждений

Нет, не должен он был этим заниматься. Соответственно, и результаты в виде востребованности среди программистов не обязаны были появляться.

Но теперь надо дело поставить так, чтобы обсуждением не гнушались, и сайт поручали бы не доброму дяде. И документацию не википедики за нас напишут. Только мы сами обязаны этим заниматься. Не хотите заниматься чем-то из перечисленного? Что ж, Ваше право. А если захотите - пожалуйста, милости просим.

Я правильно понял Вашу позицию, что не нужно обсуждать новый язык программирования, что надо продолжить развивать Глагол?

0

25

Юрий написал(а):

Так есть не только Глагол. Есть Валентина, Суржи, Афина, ПРОФТ... Что из них лучше? Кто и где убедительно доказал, что Глагол лучше?

Я ни кому доказывать ничего не собираюсь - просто сужу о томъ что можетъ быть реально использовано для созданія программъ, а что нѣтъ къ примѣру Афина и ПРОФТ это изъ той же коробочки что и 1С ну первымъ двумъ не такъ повезло какъ 1С потому и наворотовъ значительно меньше, но хотите чтобъ что-то выполнялось скачайте движокъ и таскайте къ пользователямъ въ качествѣ приложенія - платнаго или безплатнаго тутъ воля создателя - а оно кому надо...

Понятно что Глаголъ тутъ выгодно отличается, но по развитію поздно уже, я конечно могу сидѣть и дописывать библіотеки, но хрѣнъ знаетъ какіе скрытыя механизмы запихнуты въ компиляторъ - можетъ черезъ Глаголъ Издатель будетъ слѣдить за пользователями или въ одинъ прекрасный моментъ легкимъ нажатіемъ руки... Короче черная коробка, это черная коробка разъ туда не пускаютъ значитъ что-то скрываютъ и тутъ уже дѣло каждаго довѣрится хорошему человѣку - "доброму самаритянину" который даже имя свое боится сказать или наплевать на черную коробку пусть даже и въ ущербъ делу...

0

26

Юрий написал(а):

Я правильно понял Вашу позицию, что не нужно обсуждать новый язык программирования, что надо продолжить развивать Глагол?

А зачѣмъ? Глаголъ теперь самъ по себѣ - онъ здохъ еще до того какъ я проснулся - особыхъ смысловъ въ нёмъ, ну если какой-то Самаритянинъ не отдастъ его на "поруганіе" я лично не вижу, такъ что давай дѣлать свой новый языкъ съ учетомъ всѣхъ пожеланій...

Ну всё конечно учесть невозможно... Да и идеально сдѣлать можетъ не удастся, можетъ даже изъ проекта выйдетъ нѣсколько діалектовъ, можетъ что-то мультіязычное унифицированное на уровнѣ предъ компилируемаго байткода даже съ наборомъ синонимовъ въ нѣкоей библіотекѣ - кому-то нравятся слова кастраты, кому-то полныя, кому-то скобки, а кому-то вообще пиктограммами и мышкой программировать въ кайфъ, кому-то англицкіе синонимы - всё это можно сдѣлать въ унифицированномъ видѣ съ тормозами на байткоде, а вотъ изъ байткода въ отлаженномъ видѣ съ отловленными багами можно уже и въ скомпилируемую программу собрать...

0

27

У меня была идея типа того:

Код:
подключить язык: русский
 <а здесь текст на русском>
выключить язык: русский
подключить язык: русский дореформенный
 <а здесь текст на русском дореформенном>
выключить язык: русский дореформенный
подключить язык: финский
 <а здесь текст на финском>
выключить язык: финский

При этом обеспечить перевод с одного языка на другой "на лету" через словари. Перевод индентификаторов - задача куда более тривиальная, нежели полноценный перевод обычных текстов.

Что может дать такая мультиязычность? То, что к разработке (в теории; это из области благих пожеланий) можно привлечь французов, немцев, итальянце, датчан и прочих шведов, кто недоволен засилием английского в программировании. Таких недовольных немного (это можно понять по количеству недовольных русских на этом форуме), но если всех просуммировать, то рабочая сила выйдет немаленькая.

0

28

Не - на лету не надо... Лучше чтобъ функція была встроена нажалъ кнопку перевелось на діалектъ, либо въ пиктограммы построилось... Собственно операторы языка въ самихъ языкахъ не главное - главное названіе функцій и процедуръ которыя программистъ какъ разъ воленъ обзывать какъ ему хочется... А вотъ тутъ какъ разъ - если вводить мульти пульти культуность, придется съ заголовочнымъ файломъ повозится.

Къ примѣру внутри модуля:

Код:
ПроцеДура РасчётНДС(НДС = Перечисление.НДС18) Экспорт ; Я=en:CalculationOfVAT; Я=fr:CalculDeLaTVA
<Операторы>
ПобедныйКонецДуре

Отредактировано Е.В.Геній (22.07.2013 12:56:43)

0

29

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

0

30

Главное тутъ иное - каждый вродѣ на своёмъ и своими словами и вродѣ какъ ни кому не мѣшаетъ, вотъ я понимаешь великорусскій шовинистъ уже могу такъ сказать съ "братанами" французскими шовинистами практически на одномъ уровнѣ общаться, если конечно захотѣлъ выложить на международный общагъ и если постарался по переводилъ, то вродѣ какъ и имъ понятно и себѣ не обидно, думаю и съ той стороны проявятъ уваженіе, ну если захотятъ такъ сказать чтобъ мѣстныя гуры въ ихъ кодѣ ошибки по отлавливали...

0

31

Вот именно: шовинисты всех стран, объединяйтесь :) Мне нравится ход Ваших мыслей ;)

0

32

Ну и занимайтесь своими финнами и французами. Русские тут причём?

0

33

Хотелось бы, чтобы над языком работали финны и французы. А мы нажали кнопочку - готово на русском. Заманчивая перспектива? Надо подумать, как это сделать.

0

34

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

0

35

Юрий написал(а):

Хотелось бы, чтобы над языком работали финны и французы. А мы нажали кнопочку - готово на русском. Заманчивая перспектива? Надо подумать, как это сделать.

Например : BabylScript - JavaScript или Scratch , практически -  "нажали кнопочку - готово на русском"

Придумать язык, на самом деле очень просто, другое дело насколько это "экономически" сильный ход - где он будет востребован?

Смотрите здесь:  Non-English-based programming languages , для начала, список более или менее удачных решений,  возможные сценарии построения языков  , их плюсы и минусы.

0

36

Русский написал(а):

Ну и занимайтесь своими финнами и французами. Русские тут причём?

А при томъ! - къ примѣру я хочу видѣть въ языкѣ имена по великорусски - слышалъ о такомъ народѣ? Къ примѣру не "функция", а "функція"... Такой языкъ дастъ возможность программировать и на современномъ куцемъ и на нормальномъ языкѣ Пушкина, а ужъ тамъ всякіе буржуины съ боку припека - просто потому что мнѣ такой инструментъ понадобился... Лично я готовъ развивать тутъ только три языка русскій, великорусскій и древнерускій...

0

37

Смотрите здесь:  Non-English-based programming languages , для начала, список более или менее удачных решений,  возможные сценарии построения языков  , их плюсы и минусы.

Лучше посмотрите тут: traditio-ru.org/wiki/Категория:Языки_программирования_с_русскими_ключевыми_словами.

Отредактировано Русский (23.07.2013 08:14:50)

0

38

Алексей, Вы хорошую ссылку дали. Это как раз примерно то, что хотелось. Там и русские ключевые слова, имена типов, функций и прочие идентификаторы есть. Надо будет внимательно посмотреть. Список языков хоть и не велик, но всё равно впечатляет: и корейский, и румынский, и арабский и даже суахили.

Но там только перевод только того, что относится собственно к языку. Там нет словаря в широком смысле этого слова. Чтоб написал, к примеру, Евгений в нашей любимой 1С в свой программе "вычислить сумму без НДС" - и чтоб со временем пользующиеся языком перевели это на корейский и суахили. Ну а что-то написанное на корейском со временем бы попало в русский.

0

39

Почему же Юрий - если смотрѣть описаніе есть тамъ всё необходимое просто библіотеки переводить некому, хорошо хоть команды перевели, а русскихъ сразу ажъ два діалекта (пункт 8) - собственно русскій на кирилице для патріотовъ и русскій на латинице для общечеловѣковъ...

Ухъ ты какая штучка!!!

Отредактировано Е.В.Геній (24.07.2013 07:49:37)

0

40

utkin295 написал(а):

Ну вот думал, приличная тема.

Ну дыкъ, участвуйте - мѣняйте къ лучшему, въ чёмъ проблема то? Или терминъ "три зпт четырнадцать" очень хочется ко всѣмъ примѣнить? 

utkin295 написал(а):

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

Жёсткость рамокъ языка, съ одной стороны, ведетъ къ уменьшенію ошибокъ и къ лёгкости ихъ отлова...

Такъ, что да - нужны загружаемыя библіотеки, но самъ языкъ долженъ имѣть жесткую конструкцію. "Валентина" это ваша utkin295 разработка - какъ-то оцѣнить её пока не удалось, вкратцѣ можете дать то, что она можетъ? Въ основѣ байткодъ? Или полноцѣнная компиляція?

Отредактировано Е.В.Геній (24.07.2013 12:30:32)

0

41

Опять скатилась в выяснение националистических взглядов

Скатывается потому, что есть скатывающие. Похоже, мягкое отношение приводит к злоупотреблению доверием. Пока что предварительно почищу форум от такого; когда же появится создатель форума - надо будет обсудить это.

Может, сделать ветку для Валентины-2 ?

0

42

Там сделали ветку "Иные ЯП" - там нельзя создавать новые темы?

Если публика занята разборками на почве русскости вместо того, чтобы действительно заниматься разработкой. Я потому с того форума ушел, что мне это надоело.

Я почистил форум от такого "добра". Хотя не гарантирую, что всё тщательно проверил. Кое-кого - заблокировал: ведь эта блевотина появляется не из воздуха, у неё есть автор. Понятно, что этот форум не станет для Вас в одночасье симпатичнее, но хоть дайте ссылку на вашу разработку.

0

43

Ну заблокировал ты меня, и ***? Кто будет писать на форуме? Иди найди людей.

0

44

Ценность Ваших сообщений здесь имеет величину, меньшую нуля. Если никто не будет писать, то в этом случае величина будет просто равна нулю. А вот с Вами - меньше нуля.

Сказано 2000 лет назад:

Оскверняет человека не то, что в уста входит, а то, что исходит

Вы думаете, людям нравится контактировать с той дурно пахнущей субстанцией, что исходит из Вашего рта? Да они на один гектар с Вами не сядут. Чувство брезгливости не позволит. Поэтому присутствие здесь Ваших излияний гарантированно уменьшает интерес к форуму, это сказано не мной чуть раньше:

Ну вот думал, приличная тема. Опять скатилась в выяснение националистических взглядов и упоротость в русскость. Собственно поэтому и нет ни одного нормального русского языка  программирования. Как только собирутся больше 3-х человек, то вместо того чтобы создавать язык начинают стучать себя в грудь - все козлы и 3,14дорасы, один я русскмй.

0

45

Привет Юрий.
Спасибо, что нашли время открыть новый форум .

Хотел сказать, в рамках вопроса  "от слов к делу" - В историческом аспекте между США и Европой всегда было противостояние ALGOL Вики  и переход на систему ЕС ЭВМ   хорошо освещён в воспоминаниях о С.А. Лебедеве.
В общем г-да  Деннис Ритчи (Си)  , Никлаус Вирт (Паскаль) и  Бьёрн Страуструп (С++) и Ко оседлали  тему ( а всё-же  Никлаусу Вирту в США не подали лапу , для разработки Ада - своих хватило.  )
Си , Си++ и Паскаль - Алголо подобные языки с одним большим но - " описание Алгола - трёхуровневое, включающее уровень описаний, публикаций и реализации. На уровне публикаций,   допускалось использование национальных ключевых слов и стандартов представления данных (в том числе и десятичной точки)"- вот эта особенность и была завалина на корню. 

С чего начать Русский язык программирования -  наверное со встроенной возможности интернационализировать его ( i18n  ),   в действительности , можно начать с любого ЯП который Вам больше всего нравится.
Почему так- прежде всего не прийдётся вкладывать силы в обучение пользователей, в написание документации и в раскрутку, а это дело даже не 10-и человек и не одного года.

Что касается меня , для начала я бы предложил  обратить внимание на казус с визуальным языком - AppInventor , который дополняет  Scratch ,  и по странному стечению обстоятельств   не имеет встроенного  i18n.
Исходный код AppInventor.

Во-первых это хороший и благодарный способ опробовать свои силы .
Во-вторых разработчики сами хотят  i18n , но неизвестно когда это случится, а хорошо бы. ( наверное случится если форкнуть )

Отредактировано Алексей (25.07.2013 05:33:18)

0

46

Алексей написал(а):

Почему так- прежде всего не прийдётся вкладывать силы в обучение пользователей

Да собственно языки программированія нынѣ всѣ практически одинаковыя чему обучать то? Переучивать только портить, я всё таки вижу основную роль РЯП это легкость освоенія именно новичками и дѣтьми - въ первую очередь дѣтьми.

По приближенію къ естественному русскому языку - но тутъ многія русскія сами "своего" языка не чувствуютъ, это стало возможно послѣ того, какъ его изказили реформой Луначарского... Хвала Сталину, что не далъ этому идіоту на латиницу нашъ языкъ перейти, а то послѣ 1933 года мы бы тоже бы чирикали какъ чехи и для отображенія одного звука рисовали бы по двѣ-три буквы...  Такъ, что по моимъ понятіямъ это дѣлать "масло масленное" хотя на вкусъ и цветъ... А вотъ подержать мультіязычность это хорошее направленіе...

Вѣсь наборъ командъ въ современныхъ ЯП сводится только къ присвоеніямъ, вѣтвленіямъ, цикламъ и математическому аппарату, ничего новаго тутъ придумать не возможно, ну развѣ что добавить естественную логику и троичный математическій аппаратъ - частично это можно рѣшить на уровнѣ библіотеки, но изходно нужно предусмотрѣть триты какъ типъ данныхъ, такъ же повліяетъ на вѣтвленія. Основное отличіе это типы данныхъ которыя присваиваются перемѣннымъ - жестко или измѣнчиво - первое позволяетъ четко отслѣживать ошибки на уровнѣ до любой компиляціи - второе отловъ только методомъ тыка-отладки въ процессѣ работы, зато упрощаетъ языкъ до предѣла хоть и можетъ повешать систему въ любой моментъ...

По удобству Среда разработки либо текстовымъ файломъ отформатированнымъ въ ручную - думаю нужно обязательно имѣть оба варіанта, второй варіантъ хоть и пережитокъ прошлаго и подходитъ для всякихъ гуру, но позволяетъ къ примѣру работать черезъ службу - то-есть ставимъ серверъ исполненія и запускаемъ любой файлъ однимъ кликомъ въ системѣ видимъ сразу результатъ работы, понравилось, отладили - можемъ скомпилировать и уже безъ всякихъ изходныхъ текстовъ дать людямъ въ видѣ готоваго файла. А визуальныя средства это уже ближе къ дѣтямъ и новичкамъ хотя тутъ особыя излишества ни къ чему - должно быть максимально просто и интуитивно понятно...

Отдѣльно поясню преимущества троичной логики:

Код:
А=10; Б=20;
Если А=Б //Стандартная конструкція вѣтвленія
  <Операторы>
Иначе
  <Операторы;Операторы>

//Предлагается
А=10; Б="20";
Если А=Б //Троичная конструкція вѣтвленія
  <Операторы>
Иначе
  <Операторы;Операторы>
Изключеніе //Итакъ типы данныхъ не совпали - на, что у обычной логики всегда случается вывихъ
  <Операторы>

0

47

я всё таки вижу основную роль РЯП это легкость освоенія именно новичками и дѣтьми - въ первую очередь дѣтьми.

Тогда язык придётся делать не просто простым, а примитивным. Допустим, в языке будут монады - как про них рассказать детям, если многие профессиональные программисты в них не въезжают? Нет, детям лучше отдельный язык. По проще, с картинками и т.д.

О троичной логике. Есть три состояния: "да", "нет", "не определено". Ваш код не правильный

Код:
//Предлагается
А=10; Б="20";
Если А=Б //Троичная конструкція вѣтвленія
  <Операторы>
Иначе
  <Операторы;Операторы>
Изключеніе //Итакъ типы данныхъ не совпали - на, что у обычной логики всегда случается вывихъ
  <Операторы>

Потому что "иначе" - это все оставшиеся случаи: "нет" и "не определено".
Правильнее было бы так:

Код:
А=10; Б="20";
Если А=Б //Троичная конструкція вѣтвленія
  <Операторы>
Иначе Если А !=Б
  <Операторы;Операторы>
Иначе //Итакъ типы данныхъ не совпали - на, что у обычной логики всегда случается вывихъ
  <Операторы>

Состояние "не определено" было бы интересно попробовать вот в чём.
Допустим, функция что-то ищет в файле и выдаёт смещение в файле, где находится искомое. А когда функция не нашла? Тогда она возвращает отрицательное число! А надо бы , чтобы функция вернула "не определено". Потому что не надо возвращать отрицательные числа! Потому что применение отрицательных чисел означает использование знаковых чисел для размера файла. Значит, размер файла не может превышать 2 ГБ. Если бы использовались беззнаковые числа, то размер файла был бы 4 ГБ. Но это не даст вернуть отрицательное число для случая "не найдено"... Было бы логично использовать состояние "не определено" для случая "не найдено". Подобных случаев не мало...

Хочется ответить Алексею, но пока думаю. Да и времени маловато. Отпуск!

0

48

Юрий написал(а):

Есть три состояния: "да", "нет", "не определено". Ваш код не правильный

Ну почему же неправильный? Въ первомъ случаѣ я сравниваю два числа, во второмъ число и строку - принципіально разныя типы данныхъ!

- Въ Иначе какъ разъ выпадаетъ въ большинствѣ тупыхъ не типизированыхъ языковъ, въ нѣкоторыхъ умныхъ - жестко типизированыхъ такое дѣйствіе выпадаетъ въ ошибку - обычно такіе ошибки приходится чащѣ всего и отлавливать въ любомъ случаѣ - къ примѣру въ 1С часто приводитъ къ курьезамъ когда сравнивается не сравниваемое принципіально и отлавливается только въ отладчикѣ - притомъ такіе ошибки часто заложены на уровнѣ конфигураціи разработчиками отъ 1С что доставляетъ много весёлыхъ часовъ въ пошаговой отладкѣ лично у меня случалось не разъ!

Въ общемъ если создавать очередной тупой языкъ, то ему достаточно бинароной логики и приведеніи всѣхъ типовъ къ строкѣ - какъ это обычно и дѣлаютъ... Тогда достаточно бинарнаго Если Иначе, а если поступать правильно то Если Иначе Изключеніе весьма перспективная конструкція - при вызовѣ изключенія дальше можно провѣрить типы на совмѣстимость и сдѣлать преобразованія и главное тутъ дѣйствуетъ всего одно сравненіе чемъ въ конструкціяхъ Если АЕсли Иначе - тутъ уже каждый "А Если" отлавливаетъ свой конкретный случай который по природѣ является бинарнымъ.

Код:
//Собственно въ бинарной логикѣ моему примѣру соотвѣтствуетъ такая городушка конструкція:
А=10; Б="20";
Если Типъ(А)=Типъ(Б)
  Если А=Б
    <Операторы>
  Иначе
    <Операторы>
Иначе // Суть "Изключеніе"
   <Операторы>
Юрий написал(а):

Состояние "не определено" было бы интересно попробовать вот в чём.

Ну дыкъ самъ видишь, что примѣровъ для работы такой конструкціи очень много!  И какъ правило опытный программистъ начинаетъ городить бинарныя городушки для отлова своихъ частныхъ случаевъ (Да Нѣтъ НеЗнаю) или (Истина Ложь НеОпределено) и т.п., и не знаю какъ у кого, но у меня лично часто въ практикѣ приходится такіе дѣла отлавливать...   

Юрий написал(а):

Отпуск!

- Хорошо отдохнуть!!! Везётъ же нѣкоторымъ!

Отредактировано Е.В.Геній (26.07.2013 06:04:39)

0

49

Код:
если А = Б
  <Операторы>
иначе 
  // иначе - это остальные случаи: А != Б и "результат проверки на равенство не определён"
Код:
если А != Б
  <Операторы>
иначе 
  // иначе - это остальные случаи: А = Б и "результат проверки на неравенство не определён"
Код:
если А = Б и А != Б
  // Здесь вариант "результат проверки на равенство и неравенство не определён" не может иметь место
иначе 
  // иначе - это случай "результат проверки на равенство и неравенство не определён"

Вот о чём я хотел написать.

0

50

Алексею

Не хотелось отвечать Вам второпях, поэтому пишу с задержкой.

Интернационализация и локализация - темы не только интересные но и сложные. Среди сложностей есть такие, которые трудно предусмотреть в силу нашего незнания всех особенностей разных языков и традиций национальных письменностей. Например, формат записи даты разнятся у многих народов. Но это, наверное, самая простая особенность. Достаточно записать число, месяц, год в нужном порядке, и проблема исчерпана. А если это делается внутри кавычек, то на синтаксис языка это вообще не влияет: "чч/мм/ггггг".

Но возьмём разделитель целой и дробной частей чисел: одни пишут "1.99", а другие "1,99". Какие сложности тут? Допустим, язык, который хочется сделать интернациональным, позволяет записать 2 функции: f(x) и f(x, y), где x и y - числа. Когда мы запишем f(1.99), то тут всё понятно. Если запишем f(1,99) для случая, когда разделителем целой и дробной части числа является точка, будет вызвана f(x). Но если разделителем является запятая, то будет вызвана f(x,y), что противоречило задумке. Чтобы предотвратить такое, нужно в качестве разделителя аргументов функций употреблять другой символ. например ";". Но это символ может служить для других целей, чаще всего для обозначения конца выражения. Но если не так, то вдруг ";" используется в качестве разделителя целой и дробной части в ещё каком-то языке со своими традициями, ведь мы не можем гарантировать, что мы знает всё о всех языках.

От символов ".", ",", ";" напрямую зависит синтаксис языка. Это выплывет на лексического анализа. Нужно делать языково-зависимый лексический анализ. Или свою таблицу регулярных выражений. Почитавши как-то об арабском языке программирования Alb, до меня дошло, что в языках, где пишут справа налево, символы "([{" и "}])" меняют свой смысл на противоположный. Роль открывающей скобки играет скобка закрывающая и наоборот.

Или ещё такой момент. Арабы пишут справа налево. Я полагаю, что хранящиеся в файле символы, будучи прочитанными от нулевого символа до последнего, просто отображаются справа налево. Но вот числа арабы записывают слева направо, как и мы! Это особенность опять надо учитывать! А сколько ещё таких особенностей спрятано в других языках?

А вот возьмём такую фишку из языка D:
   

Код:
auto  obj = cast(MyClass) Object.factory("test.MyClass");

Это метод, позволяющий создавать объект по заданному имени его класса. В этом случае переводу подлежат не только обычные идентификаторы, но и текстовые константы. В Qt эти константы тоже как-то локализуются, переводятся…

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

Вы предлагаете интернационализировать язык AppInventor. Честно говоря, не знаю. что ответить Вам. Конечно, это "дешевле", чем изобретать свой велосипед. Если бы этим занялся лично я, то не знаю, насколько хватило бы моей "хотелки". Наверное, ненадолго. Но если этим займётся кто-то ещё - то почему бы и нет? "Пусть в нашем саду благоухают тысячи цветов". Пусть там будут и интернационализированные языки, и Кумир, и ПРОФТ, и Глагол...

Неплохо было бы организовать что-то типа конкурса по выбору "главного" русского ЯП. Как в своё время язык Ада возник как победитель конкурса министерства обороны США. Вот только "конкурсантов" у нас мало, и в "жюри" некому сесть. Да и государство наше не проявляет интереса.

0

51

Юрий написал(а):
Код:
если А = Б и А != Б
  // Здесь вариант "результат проверки на равенство и неравенство не определён" не может иметь место
иначе 
  // иначе - это случай "результат проверки на равенство и неравенство не определён"

Интересный варіантъ, въ какомъ языкѣ онъ работаетъ? Въ любомъ случаѣ это уже похоже на программистскій извратъ и изпользованіе недокументированныхъ функцій языка. Новичку въ программированіи придется долго объяснять про несовпаденіе типовъ данныхъ... Разсматриваю это дѣло съ позиціи какъ бы я пытался объяснить ребенку взаимоисключающую конструкцію (А=Б и А#Б)...

0

52

Юрий написал(а):

Неплохо было бы организовать что-то типа конкурса по выбору "главного" русского ЯП. Как в своё время язык Ада возник как победитель конкурса министерства обороны США. Вот только "конкурсантов" у нас мало, и в "жюри" некому сесть. Да и государство наше не проявляет интереса.

По мнѣ такъ по синтаксису "Кумиръ" бы однозначно бы выигралъ. Глаголъ бы нервно курилъ въ сторонкѣ... А вотъ въ функціональномъ планѣ было бы съ точностью наоборотъ...

По интернаціонализаціи думаю лучше не экспериментировать одинъ файлъ одинъ языкъ - опредѣлять въ заголовкѣ краткой записью и дѣло въ шляпѣ:
..ру
При этомъ считать это дѣло служебнымъ и не отображать на экранѣ - чтобъ видно было только въ текстѣ въ иныхъ редакторахъ, а такъ открылъ файлъ въ свойствахъ флажокъ съ доступными языками и уже въ зависимости отъ выбраного языка всѣ скобки ведутъ себя по разному... Собственно Net къ тому и движется - но это монстръ съ милліонными вливаніями - намъ же нужно всего лишь предусмотрѣть такую возможность, а уже каждой конкретной локализаціей пусть занимается фанатъ этого дѣла.

0

53

Коллеги, добрый день!

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

С моим вяло текущим проектом можно ознакомиться на http://gendoc.ru

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

Предлагаю следующую последовательность действий:
1.Разработать документ: Общие требования к РЯП.
2.Разработать документ: Спецификация РЯП версии 1
3.Разработать документ: Требования к реализации компилятора, интерпретатора, среде разработки РЯП

Например, вопросы парадигмы программирования и интернационализации относятся к документу 1.
Вопросы лексики и синтаксиса РЯП - к документу 2.
Вопросы интерпретации, кодогенерации, подсветки ситнтаксиса, выбора инструмента реализации - к документу 3.

Указанный порядок разработки документов важен.
Т.к. без 1-го сложно удеоржать в рамках разработку 2-го документа (спецификации),
а без 2-го нельзя приступать к реализации компилятора или интерпретатора.

Также считаю, что если удасться выработать единый компромисный вариант по документу 1 или 2 -
это уже самостоятельно ценный результат.

Если идти таким путем, то каждый поднятый вопрос в данном разделе обсуждения,
должен появиться в виде подзаголовка в соответствующем документе.

Например, для документа 1:
Цель разработки РЯП
Назначение и области применения РЯП
Поддерживаемые РЯП парадигмы программирования
Интернационализация
Перечень языков - прототипов РЯП (у которых РЯП заимствует идеи или свойства)
И т.д.

Далее, в каждый указанные выше (и другие) пункты документа вписывать общее решение.
Если не удается прийти к общему согласию, то указать все предлагаемые варианы в приоритетном порядке с указанием
ников сторонников варианта. Приоритетный порядок определяется поростым большинством голосов (поддердживаю Юрия).

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

Мое мнение по некоторым ранее затронутым вопросам касательно РЯП:
1.Мультипарадигменность
2.Ограниченная интернационализация на уровне таблиц соответствия ключевых слов и идентификаторов для разных человеческих языков
3.Язык должен быть высокоуровневым. Русский ассемблер на данном этапе не рассматривать

Ваше мнение?

0

54

Интересный варіантъ, въ какомъ языкѣ онъ работаетъ? Въ любомъ случаѣ это уже похоже на программистскій извратъ и изпользованіе

Евгений, я лишь пытался логически продолжить Вашу мысль насчёт троичной логики. Ведь проверки на "да" и "нет" в троичной логике не достаточно, надо учитывать третье состояние. Вас, вероятно, удивил этот код, потому что сами не привыкли к этой троичной логике.

Я не знаю всех языков программирования, поэтому не могу сказать, в каком есть такое. Но у меня были такие мысли "при придумывании" своего ЯП; но, по моей мысли, состояние "не определено" могло быть присуще всем (или почти всем) типам данных, а не только булевым. Но не знаю, насколько полезна будет такая вещь. Это смахиает на Null Object,  о вреде которого можно тут почитать: апликативное программирование.

По мнѣ такъ по синтаксису "Кумиръ" бы однозначно бы выигралъ. Глаголъ бы нервно курилъ въ сторонкѣ... А вотъ въ функціональномъ планѣ было бы съ точностью наоборотъ...

Гм... А чем так Глагол хорош? Кумир траслируется в C++ Qt, он многоплатформенный, имеет GUI. Наверное, недостаточно интересовался обоими, вопросы мои наивны.

0

55

Юрий написал(а): написал(а):

Неплохо было бы организовать что-то типа конкурса по выбору "главного" русского ЯП. Как в своё время язык Ада возник как победитель конкурса министерства обороны США. Вот только "конкурсантов" у нас мало, и в "жюри" некому сесть. Да и государство наше не проявляет интереса.

После появления Алгол68 , последний был принят министерством обороны Великобритании, и можно сказать СССР БЭСМ4 работал на ОС написанной на руссифицированной версии Алгол, к сожелению, нет места разбирать все перепитии,  вот интересный материал ДИАЛОГ ОБ АЛГОЛЕ 68 : ( не могу не процитировать)

Берс:Тут еще одна вещь была, на мой взгляд, существенной — это работа над созданием русских национальных вариантов Алгола 68. Ершов и я, мы стремились к тому, чтобы все можно написать и без латинских букв, чтобы программы можно было бы практически читать вслух, — вещь недоступная для предыдущих языков. А синтаксис вообще удалось перевести как математический стих — все правила сохранили, и мнемонический смысл, и точную форму.

К стати: материалы из архива А.П. Ершова.  (Может быть есть смысл подобные ресурсы собрать где-то  ?)

Юрий написал(а):

Нужно делать языково-зависимый лексический анализ.

Интересная тема - подстраеваемый синтаксический анализатор ,  ещё и потому, что Flex на прямую Юникода не поддерживает ,и в настоящий момент  возможный  вариант -
Записать текст в Юникоде в виде

Код:
\u0435\u0441\u043B\u0438\u0020\u0410\u0020\u003D\u0020\u0411\u0020\u0438\u0020\u0410\u0020\u0021\u003D\u0020\u0411

что есть:

Код:
если А = Б и А != Б

Text Escaping and Unescaping

подробнее Unicode Support in Flex и здесь Adding utf-8 Encoding to Lex

Юрий написал(а):

Вы предлагаете интернационализировать язык AppInventor. ... Но если этим займётся кто-то ещё - то почему бы и нет?

Считайте , что Вы нашли ещё кого-то.

Заметки по вопросу:
1)Если обратили внимание в исходниках Scratch source code  есть .ро файлы ресурсов локализации, наверное их можно использовать в AppInventor с минимальными доработками.
Пример формата :

Код:
msgid "ask %s and wait"
msgstr "спросить %s и ждать"

2)Существующие AppInventor'ские пректы должны работать в i18n версии.

0

56

Концепт написал(а):

С моим вяло текущим проектом можно ознакомиться на http://gendoc.ru

Ну ничего такъ - и самокритика нравится  :flag: - я такъ понялъ безъ среды-оболочки это не работаетъ.

Собственно всё до чего смогъ дотянутся въ описаніи довольно интересно, единственное, что я бы не сталъ дѣлать въ языкѣ - это команды ввода вывода вкручивать въ языкъ напрямую - я конечно понимаю, что хочется по навороченее, но это усложняетъ изученіе самого языка программированія, въ общемъ я сторонникъ вывода всѣхъ наворотовъ въ отдѣльныя библіотеки... Хотя тутъ на вкусъ и цвѣтъ...     

Юрий написал(а):

Вас, вероятно, удивил этот код, потому что сами не привыкли к этой троичной логики.

Ну да  :blush: ... И все таки тутъ получается уже троекратный выборъ внутри условія... ладно дойдетъ до реализаціи получше обдумаемъ...

Юрий написал(а):

Кумир траслируется в C++

Къ сожалѣнію слѣдовъ транслятора не нашелъ...

0

57

Алексею

Алгол-68 – слишком сложный для реализации язык, хотя в нём есть интересные вещи. Вирт в своё время высказал несогласие с решениями комитета по Алгол-68.

\u0435\u0441\u043B\u0438\u0020\u0410\u0020\u003D\u0020\u0411\u0020\u0438\u0020\u0410\u0020\u0021\u003D\u0020\u0411

Мне бы не понравилось программировать, а потом сопровождать такой текст. Но лексический анализатор можно и без Lex/Flex сделать ;) Это было бы более трудоёмко, но зато прозрачнее и легче в написании/сопровождении.

Но если этим займётся кто-то ещё - то почему бы и нет?

Считайте , что Вы нашли ещё кого-то.

Так я имел в виду «кто-то ещё, кроме меня» ;)

Scratch is written in Squeak, an open-source implementation of the Smalltalk-80 language

Так он на Smalltalk написан? Не довелось его изучать и пользовать…

i18n

Не скажите, почему это именно так называется? Нельзя ли этому подобрать словесный эквивалент? Желательно без монооксида дигидрогена ;) Просто не всем охота лезть по ссылкам да по Яндексам.

0

58

Хочу ответить автору Концепта (гм… называть Вас по имени вроде как не было позволения :( ).

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

Путь в 1000 миль начинается с первого шага

Что касается самого плана, то можно, конечно придраться к деталям. Но путь обозначен правильно. Согласен со всеми предложениями и согласен с мнением, изложенным в конце: 1) Мультипарадигменность 2) Ограниченная интернационализация на уровне таблиц 3) Язык должен быть высокоуровневым.

Осталось назначить ответственных ;)
В ближайшее время постараюсь на этом форуме завести темы по перечисленным пунктам.

Есть ещё некоторые технические вопросы.

1) Как-то надо организовать голосования, желательно поимённое. Есть у кого-то предложения, как это сделать? Если не будет, придётся мне посидеть, на PHP что-то придумать.
2) Каким способом фиксировать принятые решения? Возможно, завести wiki; возможно, docuwiki. Ваши мнения?
3) Надо бы ещё понять, кто что знает и умеет. Во-первых, знания или какие-то представления в теории компиляции. Во-вторых, владение языками/инструментами. Вопрос, конечно, щепетильный, не все готовы признаться, что он ни в зуб ногой в каких-то аспектах компьютерных наук. Возможно, желающие просто могут сообщить, в каких вопросах они наиболее компетентны.

0

59

Евгению

Вас, вероятно, удивил этот код, потому что сами не привыкли к этой троичной логики.

Ну да  :blush: ... И все таки тутъ получается уже троекратный выборъ внутри условія... ладно дойдетъ до реализаціи получше обдумаемъ...

Вот Вам иллюстрация на тему троичной логики ;) http://www.stihi.ru/pics/2011/04/25/5979.jpg

Кумир траслируется в C++

Къ сожалѣнію слѣдовъ транслятора не нашелъ...

Поищу ссылки... Где-то я это видел

0

60

Собственно вопросъ синтаксиса языка по мнѣ такъ въ идеалѣ одинъ сѵмволъ одно дѣйствіе, но многіе изъ насъ привыкли къ такимъ вещамъ какъ къ примѣру:

Присвоенія это "=" или ":=" или "=="
Возведеніе въ степень это "^" или "**"
Неравенство это "#" или "!=" или "<>"
Логическое И "&" или "И"

Въ общемъ какъ тутъ разнобой причесать - плодить діалекты, поддерживать всё или прійти къ единому мнѣнію?...

Юрий написал(а):

Вот Вам иллюстрация на тему троичной логики http://www.stihi.ru/pics/2011/04/25/5979.jpg

Прикольная иллюстрація - хрѣни правда ни когда не было, троичность їнъ ѧнъ была всегда показана взаимопроникающими шариками... Къ стати сѵмволъ нашъ рускій - Инить Янъ - продвигать свѣтъ... Хѣръ имѣется въ смыслѣ проникать, но понятіе їнить понятіе Хѣръ включаетъ въ себя... Такъ что однозначно новоделъ для поржать...

Отредактировано Е.В.Геній (31.07.2013 05:27:27)

0

61

== или = обычно в ЯП используются для сравнения

В Клиппере "=" можно было использовать как для сравнения, так и для присваивания. Присвоение ":=" более "математично", но ещё с Фортрана повелось, что присвоение - это "=".
Использовать "**" для возведения в степень логичнее. Ведь возведение в степень - это многократное умножение (т.е. "*"), операция более высокого порядка. В Си её нет, там "*" слишком нагружена: это и умножение, и разыменование. В Си а**b - это а*(*b), где (*b) - это разыменованный указатель.

На клавиатуре нет символов ≠≤≥, поэтому используются суррогаты !=, <= и >=. При этом "!" - это операция "не", поэтому использовать "!=" в качестве "≠" вполне логично. А вот "<>" - это операция "больше или меньше", что по звучанию не есть "не равно" ;)

Использовать "&", "|" и "^" лучше, чем "И", "ИЛИ" и "ИСКЛЮЧАЮЩЕЕ ИЛИ", т.к. нет проблем с локализацией ;)

0

62

Юрию

Вирт в своё время высказал несогласие с решениями комитета по Алгол-68.

Всё верно, это несогласие было оформлено в виде

Pascal is based on Algol, and it was intended as a sucessor to that language.

При том , что  Niklaus Wirth at the Swiss Federal Institute of Technology, в противовес коммитету по Алголу 68 - IFIP, запретившим его критику в Европе,  сделал пассаж в сторону США и системы Си(метрической),

Паскаль это практически Си

Pascal is basically C, except everywhere C has a symbol, Pascal has a word. Also, strings are a built-in type. That's about it. The two languages are so similar that you can literally translate mechanically between them.

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

где его усилия оценили в Bell Labs   г-да  Деннис Ритчи (Си)  и  познее Бьёрн Страуструп (Си++). ASCII стал монополистом в ЯП.
Всегда было интересно понять почему ЯП написанный скажем в Японии , как Руби, жёстко ориентированный на ASCII и не понимающий  Юникода ( хороши японцы :) ), получает широчайший резонанс. В то же время его прообраз  Perl использует изменяемый синтаксис парсера!  Однозначно Алгол68 :)

Мне бы не понравилось программировать, а потом сопровождать такой текст.


Это не сама программа , к счастью :) , это метод записи Юникода при помощи ASCII, который понимает Lex/Flex ,т.е. ASCII представление системы переменных (этикеток), значения которых определены в таблицах локализации.

Так я имел в виду «кто-то ещё, кроме меня»

Я , через месяц   могу начать работать над этой темой , для начала, через пень-колоду , потому, как на Жабе и Гугле App Engine не  работал, но всегда было интересно попробовать. 

Так он на Smalltalk написан? Не довелось его изучать и пользовать…

На Smalltalk написан Scratch , AppInventor это Java + Google App Engine.

Не скажите, почему это именно так называется? Нельзя ли этому подобрать словесный эквивалент?

i18n это сокращенная запись internationalization между i и n 18 букв , в словесном эквиваленте "интернационализация" наверное будет - и17я  имеет отношение к  кодам языков или идентификаторы языков

L10n  Localization -  Локализация (Л9я)
G11n  Globalization  - Глобализация (Г10я)

И17я -  применяют  к процессу разработки, Л9я - занимается  процессом адаптирования для использования И17я-ых приложений (перевод на конкретный язык), Г10я - процесс распостранения, (по Микрософту : Новые возможности глобализации и локализации  Г10я - региональная информация  ).

Отредактировано Алексей (12.08.2013 18:49:12)

0

63

Юрий написал(а):

Но лексический анализатор можно и без Lex/Flex сделать  Это было бы более трудоёмко, но зато прозрачнее и легче в написании/сопровождении.

Например на : BabylScript - JavaScript  ?
Проблема с ЯП-ия как и  Lex/Flex в том , что нет  поддержки Юникода на уровне компилятора, трудно даже назвать такой ЯП который справляется с этой задачей на все 100.   
Ещё есть такая штука как Antlr который к стати использует Оракл в лексическом анализаторе БД.

К стати вот попалась на глаза таблица эволюции средств Ада  ,анонсирована в 2012 поддержка Юникода .
Если Юникодные имена переменных возможно считать показателем - Unicode_variable_names,
Что порадовало это Perl 6 - переписан в Юникоде

Function and subroutine names can also use Unicode characters: (as can methods, classes, packages, whatever...)


и Ruby 1.9 где пытаются развить идею m17n - Multiligualization которая была использованна в  BabylScript одно но-

Ruby uses the Code Set Independent (CSI) model, while many other languages uses the UCS Normalization model. Ruby succeeds in reducing computational overhead that comes from unnecessary encoding conversions by using the CSI model. Moreover, it is possible to handle various character sets even though they are not based on Unicode.


CSI Model   продвигается Ораклом , и прочтите это , информации как бы маловато,   интуитивно можно предположить , что это модель уровней Алгол 68 , с кучей всяких ограничений вроде ASCII совместимости.

В целом ситуацию можно назвать - "феноменом Сноудена" -  обьём не-ASCII  информации  настолько велик, что обработать её существующими средствами и привести к нормальному виду, должно быть весьма проблематично, в тоже время большая часть ASCII (англоязычной) информации , до которой могут добраться "партнёры" - прозрачна и нормализируема  :)

Отредактировано Алексей (13.08.2013 00:00:01)

0

64

Это не сама программа , к счастью

А это сильно меняет дело? Возьмём этот текст из Lex:

Код:
%{
#include <stdio.h>
%}

%%
[a-zA-Z][a-zA-Z0-9]*  printf("WORD ");
[a-zA-Z0-9\/.-]+      printf("FILENAME ");
\"                    printf("QUOTE ");
\{                    printf("OBRACE ");
\}                    printf("EBRACE ");
;                     printf("SEMICOLON ");
\n                    printf("\n");
[ \t]+                  /* игнорируем пробелы и знаки табуляции */;
%%

и напишем вместо

Код:
printf("QUOTE ");

Вот это:

Код:
printf("\u0435\u0441\u043B\u0438\u0020\u0410\u0020\u003D\u0020\u0411\u0020\u0438\u0020\u0410\u0");

Вам нравится такое? Мне – не очень…

CSI Model

У меня были мысли насчёт применения усечённого UTF-16: Выбор кодировки для компилятора

Были бы ещё материалы, на которые Вы ссылаетесь, на русском - чтение проходило бы комфортнее.

0

65

Юрий написал(а):

CSI Model
У меня были мысли насчёт применения усечённого UTF-16

Дизайн и приминение мультиязычности(M17n)) в Ruby
Автор сравнивает два подхода -
The Universal Character Set (UCS) Normalization Model  - когда существует одина универсальная кодировка(UTF-8|UTF-16|UTF-32 ....).
Используются таблицы конверсии.
и
The Code Set Independent (CSI) model - когда любая кодировка может быть использована в качестве внутренней, и Юникод в этом случае одна из возможных .
В CSI model никакого преобразования кодировок не происходит, кроме того не происходит потери информации в процессе конвентирования.

Therefore, when the system uses the CSI model, programmer should be careful not to judge character codes easily just look at data on memory. This is important to avoid bugs mixed in. To avoid character related bugs, programmers should use defined functions for characters when they handle strings.

Таким образом CSI model использует "Strings' Built-in Encodings"  .Каждый Обьект строка имеет встроенную кодировку .
и  каждая последующая обработка строки - сделана на базе кодировки её обьекта:

Код:
# coding: UTF-8
"あいうえお".encoding #=> #<Encoding:UTF-8>
Юрий написал(а):

Были бы ещё материалы, на которые Вы ссылаетесь, на русском - чтение проходило бы комфортнее.

С удовольствием бы перевел, когда будет время.

0

66

Не знаю, правильно понял или нет: внутри строки находится информация о её кодировке? Это как в Паскале в строке записан размер этой строки. В Си приняты ASCIIZ-строки, оканчивающиеся нулём, а Паскаль первым байтом хранил длину этой строки.

Если информация о кодировке - внутри строки, то это неплохое решение. Хотя если вести речь о ЯП, то информация об объектах должна храниться в неких паспортах объектов - я так думаю. Паспорт или дескриптор - разными терминами можно обозначать. В этом паспорте можно много чего хранить; для строк можно было бы хранить и длину, и кодировку.

С удовольствием бы перевел, когда будет время

В таком случае большинство вещей можно сразу закидывать в Википедию. С некоторыми вещами, которые мне были интересны, я так и поступал. О CSI в ней ничего нет, кстати - ни в английской, ни в русской. Нагуглил на сайте IBM ещё о CSI. Яндекс ничего не находит :(

0

67

Было бы интересно посмотреть статистику скачиваний того набора, который был на старом форуме. Да и зачем нужно "в наборе", если можно скачать всё по отдельности?

0

68

Уважаемые Форумчане!

Помогите мне разобраться и правильно себя спозиционировать на этом форуме.
Пишу с большим перерывом, но за обсуждениями слежу регулярно (администратору по логам видно).

Людей на форуме не много, но все высоко эрудированы, инициативны и уникальны.
Здесь и знание истории, мирового опыта, ссылки конкретные приводятся.
Все очень интересно, много нового для себя узнаю.

Чего мне не хватает - не вижу общего вектора движения.
Смотрю в тему "Русский язык программирования: от слов к делу".
На сегодня - 74 сообщения. Много интересных тем затронуто..

Посмотрел на первое сообщение Юрия по этой теме от 20.07.2013.
С тех пор, четких ответов ни на один из поставленных им вопросов среди 73-х сообщений в этой ветке нет.

Вероятно, я неправильно воспринимаю суть форумов вообщее?
Т.е. это площадка, где каждый может высказаться и обсудить наболевший для себя вопрос,
но это не место для выработки общих решений, подразумевающих поиск компромиссов?

Помогите с ответом, пожалуйста.

А пока, мои ответы на вопросы Юрия, сформулированные в его первом сообщении по этой теме от 20.07.2013:
1) Язык нужно разрабатывать с нуля, чтобы каждый из участников форума ощущал себя причастным к его созданию.
  Кроме того, это является гарантией, что полученный РЯП не будет отражать мнение одиночки (к коим я и себя причисляю),
  а будет результатом коллективного мышления. Это повысит его шансы на успех.
  Компилятор или интерпретатор, среда разработки - это вопрос второй. Вопросы кодировки тоже.
  Главное, определить базовый синтаксис и семантику РЯП. А дальше записывай программы (алгоритмы) хоть на бумаге..
2) Готов участвовать в разработке интерпретатора или компилятора РЯП в качестве программиста (есть опыт MS VS C++ и Delphi).
3) Готов участвовать в коллективной разработке РЯП "с чистого листа", т.е. не навязывать своей точки зрения.
  Тем более, что мой проект КОНЦЕПТ от меня никуда не денется :)

0

69

Да, приходится констатировать, что от слов к делу перехода не было. Нет ни одного коллективно согласованного вопроса, который решён. Разрабатывать язык с нуля? Продолжить чью-то разработку и вывести её на хороший уровень? (тут назывались кандидаты, например Глагол). Или же вообще просто русифицировать (или участвовать в интернационализации и добавить в список поддерживаемых русский) какой-то распространённый язык?

Участникам utkin295, Данил, san начинать с нуля как-то не с руки – у них свои проекты, которые бросить жалко – я их понимаю.

Е.В.Геній не обозначал своего мнения по выбору пути. Было видно его недовольство тем, что ничего не делается. Согласен, болтовни много, но Ваши предложения, Евгений? Конкретные технические мысли?

Ну и создатель этого форума тут давно не появляется; да и его устремления (как мне кажется, но если я не прав – поправьте) направлены больше на чистоту русского языка, в том числе в программировании, на избавление от русских слов иностранного происхождения. И раз он высказывался, что

Лично я никогда не буду участвовать в разработке языка с нерусскими служебными словами

(т.е. слова «программа», «функция», «код», «байт»), то и на него рассчитывать не стоит, как мне кажется. Лично я не готов отказаться от заимствованных слов; полагаю, что таких большинство.

Есть Алексей, сторонник интернационализации существующих языков.

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

И с кем мы остаёмся в итоге?
Продолжу завтра...

0

70

И ещё касательно «болтовни». Если на форуме не появляется какого-то информационного наполнения, то любой посетитель, увидев дату последнего сообщения, которое было, допустим, месяц назад, скажет: «Да форум мёртв! Тут месяц никто не пишет». Поэтому иногда что-то пишу, отвечаю на чьи-то сообщения, если это показалось интересным. В иных случаях я бы поленился это сделать, а тут – груз ответственности. Но эти сообщения не вписываются в прозвучавшее «от слов – к делу».

Чем занимаюсь лично я? Экспериментирую с лексическим анализатором. Думаю над тем, каков он должен быть для ЯП с поддержкой множества естественных языков. Вкратце идея такова:

## русский
// Команда «##» с операндом «русский» предписывает компилятору
// загрузить для русского языка
// 1) таблицу признаков, описывающих назначение каждого символа
// 2) перечень русских ключевых слов
// 3) словарь идентификаторов для перевода на другие языки (до этого далеко,
// но надо предусмотреть подключение такой возможности в будущем
  . . .
  // Здесь программируем на русском
   (## english
    // те же действия по загрузке таблиц, но для английского
    . . .
    // Здесь программируем на английском
    ) // Здесь вместо английских таблиц загружаются русские
    (## Ελληνικά
        // здесь греческий
       (## فارسی
           // здесь фарси (персидский)
           (##中文
              // здесь китайский
           )
          // здесь опять фарси
       )
        // здесь опять греческий
   )
   // здесь опять русский

Лексические анализаторы работают с регулярными выражениями, грамматиками уровня 3 по иерархии Хомского. Здесь же получается, что эти регулярные выражения надо сперва загрузить! Нет заранее загруженных правил «по умолчанию». И таковых не может быть, если нет естественного языка по умолчанию. Ведь в арабском, иврите и фарси знак “>” – это знак «меньше» (а не «больше», как у нас), о  чём становится известно после загрузки таблиц.

Поэтому лексический анализатор такого ЯП имеет контекстные зависимости. Использовать Lex/Flex не получится. К счастью, эти зависимости просты, поэтому при желании на выходе можно даже генерировать что-то совместимое с Yacc.

К чему я это пишу? К тому, что каждый по отдельности из нас, как правило, что-то делает ;)

Уткину

не хочу навязывать Вам свое видение мира

Так и хочется добавить: у каждого свои собственные розовые очки ;)

0

71

Юрий, Utkin295, спасибо за ответ и оценки!

Я буду постоянно мониторить сообщения на форуме,
но пока не сдвинется коллективная разработка РЯП (хотя бы разработка БНФ),
я буду в разделе КОНЦЕПТ.

Utkin295, смотрел Ваши наработки, мне нравятся ваши идеи, напишу Вам в почту.

Еще несколько слов о моем подходе к РЯП.
С моей точки зрения, взять за основу популярный язык программирования и применить простой
перевод ключевых слов и использовать русскоязычные идентификаторы - это не РЯП.
Это, может быть, сработало бы лет 20 назад.

Если делать РЯП, то он должен иметь амбиции вывести технологию программирования для русскоязычного сообщества на новый качественный уровень.
Для этого РЯП должен обеспечивать:
1) Высокоуровневый языковый интерфейс человек-машина (выше, чем существующие популярные языки программирования "высокого уровня").
2) Последовательный переход при разработке задачи/алгоритма: описание на естественном языке => псевдокод => программа => эффективная программа.
3) Мультипарадигменность методологий программирования.
4) Встроенную обработку сложных и разнородных структур данных: семантические сети, фреймы, факты, деревья, многомерные структуры.
5) Реализацию CASE технологий для разработки программ и технической документации.

Можно долго обсуждать, что лучше перевести на русский язык - Basic, C++ или Object Pascal.
Но это задача локализации, а не разработки чего-то нового. И здесь никогда не будет единства мнений,
т.к. каждому в силу своих особенностей мировосприятия и опыта нравится именно свое.

0

72

Опять скатываюсь к болтовне, ну уж позвольте сказать. Касательно "своего видения" и "своих собственных розовых очков". Когда-то Томпсон и Ритчи вместе работали над ОС Unix и языком Си. Один из них был чем-то занят и попросил написать напарника какую-то программу. Тот просьбу выполнил. Но когда просивший посмотрел код, он воскликнул: "Я бы написал точно так же!"

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

На мой поверхностный взгляд "Валентина" и "Концепт" имеют схожую в чём-то идеологию. Мне кажется, вам повезло :)

По поводу какого-то ключевого слова. На каком языке оно должно быть? Опять на английском? На самом главном в программировании языке? Меня не тошнит от английского, но мне хотелось бы равноправности естественных языков. Если введём ключевое слово "language", то опять торчат уши "языка по умолчанию". Для соблюдения нейтральности лучше выбрать небуквенные ключевые символы.

Просто многие языки похожи и возможна путаница.

Названия языков не похожи.

0

73

Е.В.Геній, а что толку от исходников Глагола? Вот зачем они вам нужны? Менять что-то в Глаголе нет никакого смысла (за исключением добавления некоторых вещей, которые есть в Обероне-2, но которых нет в Глаголе), потому что Глагол — это, по сути, переведённый Оберон. Он полностью повторяет его устройство и преследует единственную цель: быть предельно простым, а значит и предельно надёжным, русским языком программирования. Поэтому он и повторяет Оберон: потому что именно Никлаус Вирт первым создал такой язык. Единственное развитие Глагола может заключаться лишь в написании новых отделов да усовершенствовании преобразователя, в том числе до возможности построения приложений под иные ОС, что позволит перенести на них и сам преобразователь. Никаких крупных изменений в сам язык вносить не нужно, потому что в нём, как и в его прообразе — Обероне, настолько все продумано и вылизано, настолько все части соответствуют друг другу, настолько всё уравновешено, что такие изменения поломают весь язык. Я бы сказал, что Глагол и Оберон — это языки с неизбыточной достаточностью.
Так что, если вам нужны какие-то особые возможности, то лучше делать новый язык.
И кто сказал, что РЯП должен быть один? Кесарю кесарево, как известно. Каждому языку — своё предназначение, свою нишу (свои ниши). Нужны и такие высоконадёжные языки, как Глагол (Оберон), — для разработки высоконадёжных приложений и ОС, и такие, как Си++ или Питон, —для удобной разработки приложений без особо высоких требований к их надёжности. И преобразуемые (компилируемые) языки — для наивысшей производительности, и исполнительные (интерпретируемые) языки — для наивысшей скорости разработки, удобства опять же, и исполнительно-преобразуемые (ИП-языки: с преобразованием исходника в промежкод (байткод) с последующим его исполнением) — для переносимости, многосредности (мультиплатформенности) приложений. И т.д. Всё нужно.
С чего начать? Известно, с чего! С языка общего назначения (ЯОН), то есть с преобразуемого языка. Никуда мы не уедем без оного, потому что именно он станет отправной точной, основой развития русских вычислителей (в широком смысле). И такой язык есть — Глагол. Не нравится? Тогда, как я уже выше сказал, создавайте новый. Глагол — это обероноподобный язык, это переведённый Оберон. Это — данность, явь. В нём всё, включая потроха, заточено под обероноподобность. И пытаться сделать из него Си-подобный или какой-то другой язык... Это как если сидеть и вносить в "язык" ассемблера изменения, пытаясь превратить его в JavaScript. Думаю, вы все хорошо понимаете, что это бессмысленно. А если по-хорошему, то прав Русский: начинать нужно со своего низкояза (ассемблера). Хотя это и не обязательно, но возможность использовать его вместе с ЯОН для увеличения скорости приложений в их узких местах была бы не лишней.

0

74

Давайте повоображаем с вами о том, каким бы мы хотели видеть ЯОН. Вот мои мысли, например...

Можно сделать язык, который можно было бы как преобразовывать, так и исполнять как сам исходник, так и промежкод. То есть представьте себе такое: сидите вы и пишете приложение для своих нужд. Пока вы его пишете, разрабатываете, вы запускаете исходник на исполнение без предварительного преобразования. Это уменьшает время разработки, особенно больших приложений, это удобнее: просто сохранил подправленный исходник, и двойным щелчком запустил его для проверки внесённых исправлений. Когда вы закончили разработку приложения, то сможете построить из исходника двоичный исполняемый файл (двоичник), что увеличит скорость работы приложения в десятки раз, а то в сотни. А если захотел поделиться приложением со своим другом, который сидит на иной ОС и в программировании не сечёт, то просто преобразовываете исходник в промежуточник (файл с промежкодом) и отсылаете его ему (у него должен быть установлен исполнитель этого языка). Это — переносимость, многосредность приложений.

Ещё я хотел бы, чтобы в таком языке можно было работать как с высокоуровневыми строениями (структурами) данныхпредметами (объектами), так и спускаться на самый низкий уровень для работы с каждой отдельной ячейкой памяти, для преодоления узких, в смысле скорости, мест приложения, и всё это без каких-либо низкоязных вставок.

Я хотел бы иметь возможность склонять названия переменных и постоянных величин. Это на самом деле легко. В некоторых языковых построениях нужен всего один падеж для достаточной естествоподобности языка. Математически строго словоизменение в русском языке описано, поэтому сделать такое возможно.

Я бы хотел, чтобы как в самом языке, так и в его задачнице (я так называю подборку отделов с задачами в Глаголе) не было или было как можно меньше нерусских слов, и было как можно больше русских. Думать проще, когда работаешь с русскими словами, в которых есть понятные любому русскому человеку русские корни и прочие части (т.н. морфемы). Намного проще. Например, в языке моей мечты у предметов нет "инициализации", но есть подготовка, их не "инстанциируют", а создают (или изготавливают), в них нет "итерации", но есть перебирание, там нет "интерфейсов", там — сопряжения! И т.д. То есть русскому человеку будет намного проще мыслить именно русскими словами.
Я вообще подозреваю, что это, наряду с отсутствием полноценного РЯПа, снижает производительность труда наших программистов, наших "айтишников" вообще, снижает скорость их мышления по сравнению с англоязычными работниками этой отрасли. Засоряя свою речь словами, которые сами по себе не несут никакого смысла в нашем языке, мы как бы засоряем своё словесное (вербальное) мышление. Никто ведь из вас не будет спорить с тем, что скорость чтения исходника для русского человека в случае с АЯП (английским языком программирования) будет ниже, чем в случае с РЯП при прочих равных и благоприятных условиях (понимаемость (удачность, качество) самих языков, опыт работы с обоими и т.д.)? Вот. А что, если записать американские и латинские слова русскими буквами с небольшими отличиями (русские окончания), то это сильно поднимет читаемость исходника? Уверен, что не сильно. Нужно полноценное русское мышление в этой области. А значит — нужны русские слова. Нужны русские обозначения понятиям в этой области!
И вообще, мы что, хуже наших предков? Они почти всему придумали удачные названия, от многих из которых отказывались уже сами их потомки, то следуя за модой на какой-нибудь иностранный язык (вспомните Петра 1 с его "лимитами", вспомните засилье французовщины у верхушки нашего общества, когда русский язык считался языком холопов, крестьян, но никак не благородных дворян, и сейчас вот снова наступаем на всё те же грабли, но уже на другой грядке), то просто страдая падкостью на иностранщину или даже русоненавистничеством.
Или, что, Ломоносов неправильно поступил, когда триангул треугольником назвал, солюцию — раствором, циркумференцию — окружностью, пендулу — маятником, гидрогениум — водородом, а оксигениум — кислородом, и т.д.? Я считаю, что правильно, и сейчас мы должны поступить именно так, как поступали наши великие учёные и писатели: стараться перевести либо заменить как можно больше иностранных слов. Если мы посмотрим на историю развития нашего языка, то увидим, что он всегда, если его насильно не обиностранивать, не пихать в него иностранные слова, стремится к вытеснению иностранщины, стремится к рождению своих собственных слов, ведь он всё-таки словообразовательный язык!

Что касается круглых скобок в качестве составного действителя, которые предлагает Юрий, то мне они не нравятся, уже говорил. Лучше уж тогда по-питонски.

0

75

Сколько людей - столько и мнений.

снижает скорость их мышления по сравнению с англоязычными работниками этой отрасли

Ну так цифры на этот счёт приводились. Производительность труда отечественных разработчиков примерно на 30% меньше, чем у американских.

0

76

Русский написал(а):

Да, и русский ассемблер (автокод) для современных процессоров бы не помешал. Здесь как раз нужна совместная работа по подбору слов (в этом, собственно, и заключается вся работа).

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

0

77

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

0

78

Трудоёмкость воплощения многоязычности можно снизить, оставив на потом словари. Главное, чтобы язык и компилятор заранее были готовы к этому - если отказаться от Юникода, то это как раз отказаться и от многоязычности (или многоязыкости?).

Не надо бояться облегчать жизнь иностранцам. Они разные бывают. Англоговорящим, допустим, многоязычность - побоку, а вот остальные могут помочь тебе, если ты им помогаешь...

они же не сильно нам её облегчают, часто даже наоборот.

Вот Вам Multilingual JavaScript:

It supports 12 languages: Arabic, Bengali, Chinese, French, German, Hindi, Japanese, Korean, Portuguese, Romanian, Russian, and Spanish.

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

0

79

Юрий написал(а):

Не надо бояться облегчать жизнь иностранцам. Они разные бывают. Англоговорящим, допустим, многоязычность - побоку, а вот остальные могут помочь тебе, если ты им помогаешь...

Так-то верно. Но всё равно слишком уж трудоёмкая это задача — сделать многоязычный ЯП, да ещё и удачный, качественный. Вы же сами говорили, что в разных языках разное направление письма, разные знаки разное значение будут иметь, много других отличий, из-за которых простой заменой служебных слов не обойтись. Те же названия величин — с ними что делать будете? Как переводить? Это очень сложно — подготовить язык к такой многоязычности. Если вообще возможно. Если только ограничиться введением своих служебных слов...

0

80

utkin295 написал(а):

Вопросы политики и программирования слабо сочетаются между собой.

Ошибаетесь. В ИТ-отрасли политика сплошь и рядом. Те же западные корпорации: там много своей политики. Более того, ИТ сейчас стали средством глобализации, средством достижения теми же пиндосами своих целей в разных уголках земли. Вспомните "твиттерные революции", наших оранжевых придурков в соцсетях, слежку АНБ за всем и вся через все крупнейшие сетевые службы (включая Гугл и других крупных игроков отрасли), которую выдал наш разведчик Сноуден (по всем признакам это наш человек) и т.д. Посмотрите, как через соцсети и другие службы насаждается английский язык. Можно много примеров политики в ИТ найти, если постараться.

utkin295 написал(а):

Не знаю как в других языках, а с русским просто адекватно переназвать английские слова не получится. Примеров полно. Тот же Глагол. Язык хорош, но меня лично не устраивает такой перевод слов. В тоже время нужно понимать, что на всех не угодишь (ну вот мне уже не нравится  ) и к этому не нужно стремиться.

Мне тоже поначалу не нравился, но потом я более плотно с ним поработал, и в итоге я к нему привык. Теперь мне он даже нравится, теперь я понял, что всё это вопросы привычки. А в Глаголе на самом деле отличная подборка служебных слов.

0

81

utkin295 написал(а):

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

Я просто вам объяснил, что политика в ИТ есть.

utkin295 написал(а):

Касательно английского в ИТ...

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

utkin295 написал(а):

...это также как латынь в биологии и медицине.

Так что же вы здесь по-русски пишете? Пишите по-английски! Или почему документацию на Валентину по-русски будете писать? Пишите на английском, как врачи рецепты на латыни пишут. Однако ж вы не спешите этого делать, а потому сравнение с латынью неверно и просто глупо.

utkin295 написал(а):

Никто там не спешит переназывать все и вся русскими словами.

Потому что люди по сути предали свой родной язык. Потому что сейчас большинство т.н. "айтишников" страдают англофилией и западопоклонством. Сейчас даже российские предприятия всё чаще называются по-английски русскими буквами, при этом даже не работая на внешних рынках (А даже если бы и работали — что мешает иметь несколько товарных знаков на разных языках для разных рынков?): "бла-бла-девайсез", "бла-бла-инжиниринг", "бла-бла-консалтинг", "бла-бла-ещё что-то там". Иначе как болезнью или предательством это не назовёшь.

utkin295 написал(а):

Есть устоявшиеся правила и традиции.

Вот скажите мне, какой смысл в том, что за последние два года слова "содержимое" и "содержание" почти везде заменяют на слово "контент"? Сегодня вот увидел на Ютубе: "...контент с участием несовершеннолетних..." По всей видимости, за последние несколько месяцев переделали, потому что раньше там слово "содержание" было. Это ж лютый пи%?ец! Вот что их заставляет так поганить русский язык? Примерно с год назад я случайно заметил, что вместе с очередным обновлением в моей Windows 7 произошла такая замена по всей системе. Смысл? И почему за меня решили, какие мне слова нужны? Это называется навязыванием. Или ещё пример: слово "служба" за последние несколько лет почти везде заменили на слово "сервис": там где раньше была "служба того-то", теперь стал "сервис того-то". В приложении для usb-модема МТС вместо русского слова "соединение" написано "коннект". Примеров много можно найти. И ведь эти поганые англофилы таким образом всем русским людям навязывают эти слова, как бы приучают нас к ним. И это уже очень надоело.

0

82

utkin295 написал(а):

Это называется двойные стандарты.

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

utkin295 написал(а):

Давайте абстрагируемся - итак у нас есть с++. Что мы можем сказать по отношению к нему?

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

utkin295 написал(а):

Я не хочу привыкать.

Придётся к любым ЯП привыкать. Просто к РЯПу проще намного.

0

83

Я не пользуюсь соцсетями и другим не советую

А вот я пользуюсь. Только пользуюсь именно я, а не они меня пользуют :) Для меня это - инструмент. Он для меня полезен для "наведения мостов" с одноклассниками, однокурсниками", бывшими коллегами. Не было бы соцсетей - многие для меня так и остались бы потерянными.

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

"удачность" языка характеризуется в основном семантикой

Вот именно. Не надо придавать слишком большого значение внешним формам. Они важны и даже очень важны. Но смысл, суть языка ещё важнее. Для меня важно использование родного языка в ЯП. Но если он не развит как инструмент (как тот же Глагол), то мне нет смысла им пользоваться - руки связаны.

0

84

Юрий написал(а):

Но если он не развит как инструмент (как тот же Глагол), то мне нет смысла им пользоваться - руки связаны.

Так его нужно развивать. Про развитие Глагола я уже говорил: сам язык развит почти окончательно, за исключением некоторых вещей. Это как с Обероном, его английским исходником: Никлаус Вирт сделал совершенный с его точки зрения язык и никогда его больше не меняет, только ошибки исправляют. А вот преобразователь и задачницу можно и нужно развивать. Взяли бы да написали оконный отдел, который позволит отвлечься от прямых системных вызовов (WinAPI) или отдел для работы с сетью.

И вообще, вы сами себе противоречите, Юрий. То вам не важны "внешние формы", то вы говорите о неприемлемости словесных "операторных скобок". Это ведь внешние формы, а не смысл языка.

utkin295, а что именно вам не нравится в Глаголе? Составьте, пожалуйста, перечень тех его особенностей, которые для вас неприемлемы.

0

85

* То вам не важны "внешние формы"

Цитирую себя:

Они важны и даже очень важны. Но смысл, суть языка ещё важнее.

Мне кажется, что я понятно выразился.

* вы говорите о неприемлемости словесных "операторных скобок"

Ну так это синтаксический мусор. А вообще то мы уже обсуждали Глагол. Что он сделан на основе Оберона - языка, основанных на идеях 30-летней давности. Нет ни чистых функций, ни многих других вещей, которые давно и успешно используются в других ЯП...

0

86

Юрий написал(а):

Цитирую себя:

Прошу прощения, очитался.

Юрий написал(а):

Что он сделан на основе Оберона - языка, основанных на идеях 30-летней давности. Нет ни чистых функций, ни многих других вещей, которые давно и успешно используются в других ЯП...

Он основан на идеях Никлауса Вирта. А у него они и сейчас такие же. Были бы другие — сделал бы следующий язык.
На Глаголе можно разрабатывать любое ПО. Просто в других языках больше удобств, но при этом и надёжность ПО меньше, так как больше двусмысленностей и источников ошибок.

0

87

Юрий написал(а):

А вообще то мы уже обсуждали Глагол. Что он сделан на основе Оберона - языка, основанных на идеях 30-летней давности.

Вы так говорите, как будто через 30 лет на нём больше нельзя писать приложения. Самый распространённый язык до сих пор — это Си. А идеи этого языка ещё старше. И ничего, народ до сих пор на хлеб ими зарабатывает. Так что свежесть идей — это не самое главное. А источников ошибок при этом куда больше в этих языках. Стоит лишь вспомнить, КАК МНОГО ошибок переполнения стека в ПО, написанном на Си и Си++, из-за того, что программисты постоянно забывают проверять длины рядов и строк. На использовании этих ошибок основано подавляющее большинство т.н. "эксплоитов", они скармливают какой-нибудь удалённой службе или местному приложению данные большой длины, часть этих данных исполняется как указания, в итоге либо открывается т.н. "шелл" с корневыми правами, либо создаётся пользователь с такими правами, либо ещё что-нибудь такое в этом же духе. Одному Богу известно, как много узлов в сети было взломано такими "эксплоитами". Такие же ошибки используют всевозможные зловреды. И т.д. А вот в Глаголе и Обероне такие ошибки невозможны.

0

88

Си используется везде не потому, что хорош. Только исторические причины. Операционки написаны на Си. Много программистов, им владеющих. Много проектов, которые надо развивать и поддерживать, тоже на Си...

Уже писал раньше:

Вот статья Спольски: «А ваш язык программирования так может?» Оберон так не может. Он слишком прост для этого.

Для успеха не достаточно повторить Си. Надо иметь такую же историческую базу, чтобы быть подобным Си и не о чём не беспокоиться. И Оберон повторять не надо. Если он сам далёк от успеха, то кому нужен клон? Он - во второй сотне рейтинга

0

89

Юрий написал(а):

Если он сам далёк от успеха, то кому нужен клон? Он - во второй сотне рейтинга

Все остальные языки либо обязаны историческим причинам, либо за ними стоят крупные предприятия. Это касается языков из одной ниши. Всё в одну кучу мешать нельзя. Например, нет смысла сравнивать Оберон с PHP или VBA.

0

90

Мне кажется, так пристально рассматривать то, что нас разнит - не совсем хорошо. Нас объединяет желание сделать РЯП. Для одних это - вопрос чисто практического удобства. Не более того. Для других - это ещё забота о родном языке. Так давайте искать точки соприкосновения, а не поводы для раздора.

Давайте сосредоточимся на "наибольшем общем кратном" - РЯП. Его набор слов можно будет достаточно легко менять. Чтобы можно было выбрать обычный современный русский язык, или же русский без заимствований. Евгений захочет русский на основе дореформенной орфографии - пусть всё это будет. Я последнее время делаю лексический анализатор, который позволит подключать любые языки, для которых есть символы в Юникоде. Надеюсь, у меня получится.

0

91

Юрий написал(а):

Чтобы можно было выбрать обычный современный русский язык, или же русский без заимствований.

Юрий, неужели вы считаете, что в РЯПе нельзя обойтись без заимствований так, чтобы этот русский язык был обычным? Я даже боюсь представить себе такой "обычный" русский язык. И неужели для вас все эти "контенты" с "сервисами" стали обычнее русских слов? Если так, то дела в Русском Мире обстоят очень плохо. Вот для меня русский язык просто остаётся русским.

0

92

Юрий написал(а):

Мне кажется, так пристально рассматривать то, что нас разнит - не совсем хорошо. Нас объединяет желание сделать РЯП. Для одних это - вопрос чисто практического удобства. Не более того. Для других - это ещё забота о родном языке. Так давайте искать точки соприкосновения, а не поводы для раздора.

Давайте сосредоточимся на "наибольшем общем кратном" - РЯП. Его набор слов можно будет достаточно легко менять. Чтобы можно было выбрать обычный современный русский язык, или же русский без заимствований. Евгений захочет русский на основе дореформенной орфографии - пусть всё это будет. Я последнее время делаю лексический анализатор, который позволит подключать любые языки, для которых есть символы в Юникоде. Надеюсь, у меня получится.

Что именно вы понимаете под таким РЯПом? Как это всё выглядеть будет?

0

93

Юрий написал(а):

Мне кажется, так пристально рассматривать то, что нас разнит - не совсем хорошо. Нас объединяет желание сделать РЯП. Для одних это - вопрос чисто практического удобства. Не более того. Для других - это ещё забота о родном языке. Так давайте искать точки соприкосновения, а не поводы для раздора.

Давайте сосредоточимся на "наибольшем общем кратном" - РЯП. Его набор слов можно будет достаточно легко менять. Чтобы можно было выбрать обычный современный русский язык, или же русский без заимствований. Евгений захочет русский на основе дореформенной орфографии - пусть всё это будет. Я последнее время делаю лексический анализатор, который позволит подключать любые языки, для которых есть символы в Юникоде. Надеюсь, у меня получится.

А что, если на вход некоего приложения — назовём его преобразователем — будут подаваться последовательности условных знаков или даже чисел, которые будут описывать логику работы преобразуемой программы, а такой преобразователь будет давать на выходе двоичный код? Также будет приложение, которое будет разбирать исходник и строить такую условную запись программы (рабочее название — промежкод), назовём его разборщиком. Тогда любой мог бы прикрутить к этому преобразователю любой язык, написав свой разборщик. Также к такому разборщику можно было бы прикрутить исполнитель, который этот промежкод исполнял бы напрямую (с сохранением промежуточника (файла с промежкодом) для увеличения скорости работы при последующих запусках или без такового). То есть мы могли бы создать некий набор снастей, сочетая которые можно решить любую задачу, связанную с программированием. Что скажете?

0

94

есть моя статья в ныне вымершем журнале ПРОграммист, я об этом уже писал.

Вы не пробовали писать статьи, скажем, для Хабра? Мне кажется, был бы больший отклик.

мог бы дать несколько рекомендаций технического характера. Эта задача решаема

Мне кажется, это самый простой раздел из компиляторной науки :) Пусть у каждого будет свой лексический анализатор, с преферансом и поэтессами ;)

неужели вы считаете, что в РЯПе нельзя обойтись без заимствований так, чтобы этот русский язык был обычным

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

Что именно вы понимаете под таким РЯПом?

Будет ли он один или их много - не знаю. Их уже не один, так что вряд ли их количество "сожмётся".

0

95

неужели вы считаете, что в РЯПе нельзя обойтись без заимствований так, чтобы этот русский язык был обычным

Ещё хотелось бы добавить. Я уже говорил, что делаю лексический анализатор, расчитанный на множество языков. Не будет никаких преград, чтобы в список языков входил как  общепринятый сегодня язык, так и тот, который обходится без заимствований. Можно будет писать и так

Код:
(если <условие>
   ...
иначе
   ...)

, и так:

Код:
(ежели <условие>
   ...
отнюдь
   ...)

проблема всех лексических анализаторов в устаревших подходах к автоматическому построению.

Не могу сказать, что имею мнение на этот счёт. Мнение опирается на хорошие знания, которых у меня нет. Поэтому у меня есть не мнение, а впечатление.

Не заметил каких-то теоретических прорывов и принципиально новых подходов в компиляторостроении. Тут прорывы не в теории, а в практике. Если раньше был одинокие Lex и Yacc, которые генерировали код на Си, то теперь есть масса подобных инструментов, которые выдают код для Java, C#, Phyton. Ещё один момент, о котором писал Креншоу. Раньше компьютеры имели ограниченный объём памяти. Теперь в память можно целиком загрузить исходный тест, в памяти же хранить промежуточные итоги работы компилятора, без постоянной записи/чтения на/с внешнюю память. Всё это упрощает компилятор.

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


Не очень понял, что имеете в виду под высоким или низким уровнем. Можно делать многопроходовый компилятор. Можно откомпилировать за два или один (последнее не всегда возможно даже теоретически) проход. Многопроходовый компилятор структурно проще, но требует представления результатов работы в какой-то промежуточной форме. Что тоже поедает ресурсы в виде памяти и времени. Но допускает лучшую оптимизацию. Однопроходовый - быстрее. Лексический анализатор можно сделать как отдельный проход. А можно сделать подгрузку лексем в процессе синтаксического анализа: лексема = получить следующую лексему (). Но последнее возможно, когда лексемы разбираются  регулярными выражениями. В своём лексическом анализаторе я не вижу способов обойтись именно регулярными выражениями. Но можно сделать отдельный проход, записать в промежуточную форму, а затем опять использовать лексема = получить следующую лексему ().

работа с лексемами сразу, минуя посимвольное сканирование.

Гм... А как это, простите за вопрос? Как идентификатор "абв", минуя сканирование, появится в синтаксическом анализваторе, при этом про него будет известно, что это именно "абв"?

0

96

utkin295 написал(а):

Но обычный язык состоит из заимствований. Чтобы устраивало всех надо смотреть на проблему шире.

Юрий написал(а):

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

Это неправда. Заимствований не так уж и много. Вот скажите, пожалуйста, что такого необычного и плохого в слове "подготовка" по сравнению со словом "инициализация"?
Похоже главные враги русского языка — сами русские люди, которые ради успеха в своей профессии готовы продать свой язык с потрохами. Это очень плохо.

Юрий написал(а):

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

То есть обычные русские слова уже не являются для вас "общепринятым" языком? А почему?

Юрий написал(а):
Код:
(если <условие>
   ...
иначе
   ...)

В вашем языке обязательно будут эти круглые скобки? Само устройство языка можно будет менять, помимо замены одних слов на другие?

И что делать с такой немаловажной вещью, как задачница (библиотека)? Что делать с именами встроенных постоянных, переменных, задач (функций), образов (классов), отделов (модулей) и т.д.? Они тоже будут сразу же переводиться при выборе языка? Если нет, то какой смысл от многоязычности, ведь львиную долю исходника составляют как раз имена? Речь идёт даже не о пользовательских именах, а об именах встроенных отделов. Как с этим быть?

0

97

Это неправда. Заимствований не так уж и много. Вот скажите, пожалуйста, что такого необычного и плохого в слове "подготовка" по сравнению со словом "инициализация"?

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

То есть обычные русские слова уже не являются для вас "общепринятым" языком?

Общепринятые – это те, которые я читаю в книгах, в том числе по программированию. Когда читаю «байт»,  мне всё понятно. Это общепринятое. Когда я прочитаю «запись размером 40 слогов» - я буду долго размышлять. А вот «файл размером 40 байтов» - мне сразу понятно, да и Вам тоже. Да, там заимствованные слова, но не я их заимствовал и не я их глубоко внедрил в наш язык. Чтобы быть понятым, я вынужден их использовать.

В вашем языке обязательно будут эти круглые скобки?

Ну да, я помню, что Вам нравится стиль Питона. А мне нравится вот такой. Кстати, Евгению он понравился. Жаль, что больше никто не высказался «за» или «против».

Само устройство языка можно будет менять, помимо замены одних слов на другие?

Можно будет менять не отдельные слова языка, а сам язык, вместе с алфавитом, ключевыми словами, словарём, учётом особенностей типа письменности справа налево (последнее ещё не всё ясно самому).

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

Это должно быть в словаре. Допустим, в русском словаре будет «лексический анализ», в каталонском – «Gestió del filtre d'abusos», в чешском – «Lexikální analýza», во вьетнамском - «Quản lý bộ lọc sai phạm» (не подумайте, что я такой умный, это я из «википедии» беру :) ), а в русском без заимствований – «словесный разбор». По идее все соответствующие друг другу слова и словосочетания должны иметь одинаковый код в базе. Не важно – обычная ли это переменная или имя библиотечной функции.

0

98

Похоже главные враги русского языка — сами русские люди, которые ради успеха в своей профессии готовы продать свой язык с потрохами.

Если я занимаюсь продажей, то где могу получить свою долю?

Мне кажется, Вы проблемой занимаетесь не с той стороны. Обладай Вы хотя бы половиной авторитета Воложа или Касперского, то Вам было бы гораздо легче влиять происходящее. Например, Касперский заявил, что анонимность в сети – это зло, и его позиция была услышана. Надо добиваться успехов, тогда всё проще.

В том числе и с РЯП. В РЯП Вас занимает верхушка айсберга – его словесное наполнение. Для успеха РЯП нужна его техническая изощрённость, которая бы позволила ему вытеснять «не наши» языки. Было бы интересно узнать Ваши мысли и идеи относительно внутреннего наполнения языка. Ведь только оно даст шанс. При этом «чисто русский» язык обречён на прозябание, именно поэтому хочется его сделать дружелюбным ко всем человеческим языкам. Давай те посмотрим правде в глаза, 1С занимает такую нишу только по причине «дешёвого решения надуманных государством проблем». В других странах бухучёт намного проще и ведётся чуть не в Экселе (для подачи налоговой отчётности). Нет возможности с русским ЯП занять место 1С.

Вот сижу, пишу. А мог бы программировать…

0

99

Юрий написал(а):

А ведь «функцию» приходится использовать на каждом шагу.

Функции в математике. А в программировании подпрограммы, которые в Глаголе удачно названы задачами. Куча там просто до кучи, чтобы ничего не упустить, не забыть потом. А вообще, массив — это никакая не структура, это просто большое количество массы. Называть это понятие массивом — идти против здравого смысла. Отличная замена неправильному "массив" — ряд. В том же Питоне используют list (список), и ни у кого задница от этого не взорвалась. У нас же если кто-то что-нибудь сделает иначе, сразу готовы убить за это. Дурдом.

Юрий написал(а):

Когда я прочитаю «запись размером 40 слогов» - я буду долго размышлять.

Тогда уж не слогов, а слов. Именно так это называлось у советских специалистов в ИВТ. У того же Ершова.

Юрий написал(а):

А вот «файл размером 40 байтов» - мне сразу понятно, да и Вам тоже.

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

Ну, ладно эти. А как насчёт "подготовка" вместо "инициализация", вы так и не ответили. И как насчёт "сопряжения" вместо "интерфейса" в смысле взаимодействия между теми же объектами?

Эти-то то вполне себе понятные?

Юрий написал(а):

Если я занимаюсь продажей, то где могу получить свою долю?

Вы же сами сказали, какой выбор вы делаете ради успехов в профессии. Думаю, в зарплату награда за отказ от русскости входит почти у всех. Неявно, так сказать.

Юрий написал(а):

Мне кажется, Вы проблемой занимаетесь не с той стороны. Обладай Вы хотя бы половиной авторитета Воложа или Касперского, то Вам было бы гораздо легче влиять происходящее. Например, Касперский заявил, что анонимность в сети – это зло, и его позиция была услышана. Надо добиваться успехов, тогда всё проще.

Я уже думал о том, что если бы сделал РЯП, низкояз и ОС, то на них подсело бы много народу. Но у меня пока только наброски и записи разных придумок, чтобы не забыть их.

0

100

Я уже думал о том, что если бы сделал РЯП, низкояз и ОС, то на них подсело бы много народу.

Двумя руками «за»! Дело – оно всегда лучше разговоров.

Думаю, в зарплату награда за отказ от русскости входит почти у всех. Неявно, так сказать.

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

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

«Слог» и «куча», как замена «байту» и «массиву», - я их взял из того самого словаря. «Ряда» там нет (хотя он есть в Глаголе). А «слово» используется в другом смысле: как несколько байтов, соответствующих разрядности машины.

«Функция» - это более узкое определение, чем «подпрограмма». Потому что «процедура» - это тоже подпрограмма. Но процедура, в отличие от функции, не возвращает значение. В математике – своё определение функции, в программировании – своё. Или взять понятие «чистая функция», которая как раз таки близко по сути к математическому смыслу. Не всё так просто.

0

Быстрый ответ

Напишите ваше сообщение и нажмите «Отправить»



Вы здесь » Русские вычислители » Русский язык программирования: от слов к делу » Русский язык программирования - с чего начать?