Программирование на изменяемом национальном языке
От: alpha21264 СССР  
Дата: 20.07.21 09:34
Оценка: -3 :))) :))
Народ!

А как вам такая сумасшедшая идея?

У нас есть Юникод значительная часть которого не используется.
А что если часть Юникода использовать для языка программирования?
То есть каждое ключевое слово — один симвод где-то в конце юникода.
А дальше программист только меняет шрифты.
Хочешь — по английски видишь текст, хочешь по-русски, а хочешь — на суахили.

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

Шрифт — это способ сделать такую систему программирования вот прям сейчас,
не разрабатывая собственную IDE, которая будет поддерживать интернационализацию.
http://s19.rimg.info/0871fde0709f1bd37b3b012eb22a4583.gif
Течёт вода Кубань-реки куда велят большевики.
Re: Программирование на изменяемом национальном языке
От: SаNNy Россия  
Дата: 20.07.21 10:28
Оценка: +1
Здравствуйте, alpha21264, Вы писали:

A>Следующий шаг

A>Точно так же вносить в шрифт названия переменных и функций.
A>Благо их в программе не так уж много.

А ты точно программист?
Re[2]: Программирование на изменяемом национальном языке
От: alpha21264 СССР  
Дата: 20.07.21 10:57
Оценка:
Здравствуйте, SаNNy, Вы писали:

A>>Следующий шаг

A>>Точно так же вносить в шрифт названия переменных и функций.
A>>Благо их в программе не так уж много.

SNN>А ты точно программист?


Ты не поверишь.
http://s19.rimg.info/0871fde0709f1bd37b3b012eb22a4583.gif
Течёт вода Кубань-реки куда велят большевики.
Re: Программирование на изменяемом национальном языке
От: Osaka Россия  
Дата: 20.07.21 11:04
Оценка: +4 -1
A>То есть каждое ключевое слово — один симвод где-то в конце юникода.
В спектрумовском бейсике что-то похожее было (каждый оператор в 1 байт).
A>А дальше программист только меняет шрифты.
A>Хочешь — по английски видишь текст, хочешь по-русски, а хочешь — на суахили.
Идея хорошая. Но вот есть в VS настройка "в сколько пробелов отображать таб". Козалось бы, тоже каждый мог бы настроить любимую ширину. Но юные тимлиды-сектанты всё равно требуют чтобы у всех пробелы!
-----------------------------------------------------
мы живем в мире функционально неграмотных людей
Re: Программирование на изменяемом национальном языке
От: elmal  
Дата: 20.07.21 11:20
Оценка: 3 (1) +1
Здравствуйте, alpha21264, Вы писали:

A>Шрифт — это способ сделать такую систему программирования вот прям сейчас,

A>не разрабатывая собственную IDE, которая будет поддерживать интернационализацию.
Старо как мир. Во первых, такое уже было, на ZX Spectrum коды старше 127 использовались под ключевые слова. Идея так себе, ибо введение нового ключевого слова требует стандартизации, согласований и т.д. Во вторых, локализация ключевых слов это вообще простейшая задача и может быть решена плагином к IDE достаточно быстро, там вообще ни чего сложного нет.
Re: Программирование на изменяемом национальном языке
От: удусекшл  
Дата: 20.07.21 11:28
Оценка:
Здравствуйте, alpha21264, Вы писали:

A>А как вам такая сумасшедшая идея?


A>У нас есть Юникод значительная часть которого не используется.

A>А что если часть Юникода использовать для языка программирования?
A>То есть каждое ключевое слово — один симвод где-то в конце юникода.
A>А дальше программист только меняет шрифты.
A>Хочешь — по английски видишь текст, хочешь по-русски, а хочешь — на суахили.

Отличная идея, на спектруме уже реализовывали. Правда кодировка была однобайтной и до перевода дело не дошло
Re: Программирование на изменяемом национальном языке
От: vsb Казахстан  
Дата: 20.07.21 11:45
Оценка:
Здравствуйте, alpha21264, Вы писали:

Не очень понятен смысл всей этой затеи.

A>Шрифт — это способ сделать такую систему программирования вот прям сейчас,

A>не разрабатывая собственную IDE, которая будет поддерживать интернационализацию.

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

Любая IDE прекрасно поддерживает UNICODE.

Ты можешь прямо сейчас взять C, написать пару простейших препроцессоров и получить русифицированный C.
Re[2]: Программирование на изменяемом национальном языке
От: Doom100500 Израиль  
Дата: 21.07.21 05:47
Оценка: +3
Здравствуйте, vsb, Вы писали:


vsb>Ты можешь прямо сейчас взять C, написать пару простейших препроцессоров и получить русифицированный C.


Не только лишь C

А вообще, я не очень понимаю этого желания писать код на национальных языках. Сразу в моменты тупежа отсекаешь чуть менее, чем все решения, которые можно найти в мировом интернете.
Спасибо за внимание
Re: Программирование на изменяемом национальном языке
От: Homunculus Удмуртия  
Дата: 21.07.21 05:49
Оценка: +5
Здравствуйте, alpha21264, Вы писали:

А зачем?
Re[3]: Программирование на изменяемом национальном языке
От: Muxa  
Дата: 21.07.21 07:41
Оценка:
SNN>>А ты точно программист?
A>Ты не поверишь.

А как так вышло что за всю твою карьеру ты ни разу не участвовал в код ревью? Или как ты себе это представляешь с таких способом использования ЯП?
Re[2]: Программирование на изменяемом национальном языке
От: Mihas  
Дата: 21.07.21 08:18
Оценка:
Здравствуйте, Osaka, Вы писали:

O>Но юные тимлиды-сектанты всё равно требуют чтобы у всех пробелы!

Уже давно не юные
Re: Программирование на изменяемом национальном языке
От: Mihas  
Дата: 21.07.21 08:21
Оценка:
Здравствуйте, alpha21264, Вы писали:

A>То есть каждое ключевое слово — один симвод

И на клавиатуру их
Ссылка на картинку
Отредактировано 21.07.2021 8:24 Mihas . Предыдущая версия .
Re[2]: Программирование на изменяемом национальном языке
От: Bill Baklushi СССР  
Дата: 21.07.21 08:24
Оценка: +1 -1 :))
Osaka:

O>Идея хорошая. Но вот есть в VS настройка "в сколько пробелов отображать таб". Козалось бы, тоже каждый мог бы настроить любимую ширину. Но юные тимлиды-сектанты всё равно требуют чтобы у всех пробелы!


Не трогай пробелы!!!
Объединяйтесь, либералы, для рытья каналов!
Re[4]: Программирование на изменяемом национальном языке
От: alpha21264 СССР  
Дата: 21.07.21 10:21
Оценка:
Здравствуйте, Muxa, Вы писали:

SNN>>>А ты точно программист?

A>>Ты не поверишь.

M>А как так вышло что за всю твою карьеру ты ни разу не участвовал в код ревью?


А с чего ты взял, что я ни разу не участвовал в код-ревью? И при чём тут код-ревью?

M>Или как ты себе это представляешь с таких способом использования ЯП?


Да в общем-то как обычно. Только с интернационализацией. Чтобы не лазить в программу со словарём.
http://s19.rimg.info/0871fde0709f1bd37b3b012eb22a4583.gif
Течёт вода Кубань-реки куда велят большевики.
Re[5]: Программирование на изменяемом национальном языке
От: Muxa  
Дата: 21.07.21 10:46
Оценка:
M>>Или как ты себе это представляешь с таких способом использования ЯП?
A>Да в общем-то как обычно. Только с интернационализацией. Чтобы не лазить в программу со словарём.

Не понял что значит "с интернационализацией". Не переводя код на национальный язык чтоли?
Это теперь надо два варианта кода в голове держать чтоли?
Re[6]: Программирование на изменяемом национальном языке
От: RonWilson Россия  
Дата: 21.07.21 11:21
Оценка:
Здравствуйте, Muxa, Вы писали:

M>Это теперь надо два варианта кода в голове держать чтоли?


Если бы только два...
Re: Программирование на изменяемом национальном языке
От: maxkar  
Дата: 21.07.21 11:21
Оценка:
Здравствуйте, alpha21264, Вы писали:

A>Идентификатор ПроверитьЧтоЗначениеВзятоИзСловаряТихонова — 7 символов.

И в английском оно будет выглядеть как Identifier CheckWhatMeaningTakenOfVocabularyTihonova, правильно?

A>А дальше программист только меняет шрифты.

A>Да, при этом шрифт становится частью проекта.
Как это сочетается друг с другом? Мне теперь помимо кода нужно будет и шрифты рисовать под каждый поддерживаемый язык разработчика?

A>Шрифт — это способ сделать такую систему программирования вот прям сейчас,

A>не разрабатывая собственную IDE, которая будет поддерживать интернационализацию.
Если мы говорим именно про интернационализацию, это приведет к необходимости создания новых символов. Например, вам нужн будет различать "разделитель параметров в вызове метода", "доступ к члену класса" и "разделитель дробной и целой части числа". Потому что в разных локалях разделители разные. И если вы хотите отображение на уровне шрифтов делать — придется разделять символы. Еще есть всякие забавные особенности вроде письменности справа налево. А потом все эти символы нужно будет уметь вводить. И добавлять новые (в новых проектах).
Re[2]: Программирование на изменяемом национальном языке
От: RonWilson Россия  
Дата: 21.07.21 11:24
Оценка:
Здравствуйте, maxkar, Вы писали:

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


Можно, как вариант, "разделитель параметров в вызове метода" — любой символ, визуально похожий на запятую. "доступ к члену класса" — точковидный символ. "начало блока" — что-то, визуально смахивающие на begin фигурную скобку
Re: Программирование на изменяемом национальном языке
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 21.07.21 12:41
Оценка:
Здравствуйте, alpha21264, Вы писали:

A>А как вам такая сумасшедшая идея?


У меня была такая идея. Предположим код это список отступов и токенов.

Тогда такой код (test.cpp):
void main

Разлагается на:
отступы токены
"" "void"
" " "main"
Для проверки идеи сначала разобрал код вручную. Потом для наглядности приделал qt gui к boost.tokenizer.

Скачать: tokenizer.7z

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

Основные слои конструкций


Далее код делится на слои, первый слой токенов.
номер файл уровень отступ токен токен_ru токен_en токен_de
1 "test.cpp" 0 "" "void" "пустой" "void" "leere"
2 "test.cpp" 1 " " "main" "главный" "main" "main"
В итоге суммируя отступ+токен получаем исходный код.
void main

Суммируя отступ+токен_ru получаем русский код.
пустой главный

И так далее.
leere main

Дополнительные слои конструкций


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

Для примера:
1) Слой "инструкций".
2) Слой "шаблонов проектирования".
3) Слой "архитектуры".

Для обозначения использовать ветки древовидного списка через символ разделителя.
категория/.../категория

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

Итого

Не то, чтобы сложно сделать такую штуку на Qt, всего то подключиться к базе моделью таблицы, но из-за лени всё это пока что остаётся идеями, или лучше сказать набросками структур данных, графических интерфейсов и прочего без реализации. Давно уже заметил, что потребности у людей не уникальны просто надо вкалывать, а это могут не только лишь все.
Re[2]: Программирование на изменяемом национальном языке
От: gyraboo Россия  
Дата: 21.07.21 12:53
Оценка:
Здравствуйте, velkin, Вы писали:

A>>А как вам такая сумасшедшая идея?


V>У меня была такая идея. Предположим код это список отступов и токенов.


А скинь плз сорсы утилиты, интересно посмотреть.
www.nanonewsnet.ru
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.