Модераторы: Се ля ви

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Русский язык программирования, был бы совсем другим 
:(
    Опции темы
LSD
Дата 1.2.2013, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15708
Регистрация: 24.3.2004

Репутация: 3
Всего: 537



Арабам англоязычные ЯП тоже покоя не дают: Alb — новый язык программирования, основанный на арабской вязи.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ТарасАтавин
Дата 16.9.2013, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 26.8.2013

Репутация: нет
Всего: нет



Цитата(Се ля ви @  1.7.2005,  12:06 Найти цитируемый пост)
Но вот недавно, размышляя над этим, я понял, что мне в них не нравится. Мне стало понятно, что англоязычность всех современных языков гораздо глубже простых зарезервированных слов языков, по-этому для обеспечения русскости недостаточно их просто перевести. Т.е. сама парадигма того, что язык состоит из неизменяемых слов - уже англоязычна по сути. Ведь именно в английском языке сами слова не изменяются, а отношения между словами в предложении определяются предлогами и порядком следования, у нас же заметно большую роль играют приставки, окончания и суффиксы, неизменны лишь корни слов.

Т.е. по-настоящему русский язык программирования должен был бы строиться на другой парадигме - прадигме изменяемых зарезервированных слов языка - с формализацией окончаний, приставок и суффиксов. Такой язык действительно мог бы стать более понятным для русских людей, овладевающих программированием, но просто перевода зарезервированных слов уж точно не достаточно
Все операции обозначаются операторами, соответствующие глаголам повелительного наклонения:
"+" - "сложи",
"-" - "вычти",
":=" - "присвой",
"/" - "раздели",
"mod" - "вычисли остаток"
и так далее. Специальные конструкции не изменяемы в принципе, например, "if" значит "если", "then" - "тогда", "else" - "иначе". Здесь строй предложения одинаков на паскале, русском и английском. "begin"/"end" можно адекватно перевести как "от"/"до", остаётся перестроить заголовок цикла for, чтоб не путать c "to", которое тоже "до". Из изменяемого остаются идентификаторы величин, а с ними сложно что то сделать. 
Цитата(vadims @  1.7.2005,  14:44 Найти цитируемый пост)
к последним двум так и хотелось добавить 'на'
три кнопки? 
Цитата(Се ля ви @  5.7.2005,  09:24 Найти цитируемый пост)
Понимаешь, есть подозрение, что подсознательно нам, в силу особенностей нашего разговорного языка, будет легче писать/разбирать чужой код на языке программирования, в котором за основу взят русский язык, а не английский. Чисто-психологически он, возможно, будет роднее - и это даст выигрышь в скорости обучения, написания и разбора кода в массах... 
Операторов достаточно мало, так что на таком то уровне любой программист должен знать английский до начала обучения программированию. К тому же некоторое операторы обозначены иероглифами. Например, знаки арифметических действий - типичные иероглифы, то есть символы, имеющие самостоятельные понятийные значения. Я пошёл дальше и обозначил иероглифами операторы: сдвига, ввода/вывода, присваивания, "И", "ИЛИ", "НЕ", "исключающее ИЛИ" и даже один оператор цикла. Сдвиг обозначил иероглифами собственного сочинения, ввод/вывод и присваивание - стрелками, а оператор цикла - квантором "для каждого".

Это сообщение отредактировал(а) ТарасАтавин - 16.9.2013, 11:15


--------------------
Не так всё плохо, как оно есть на самом деле.
PM MAIL   Вверх
ТарасАтавин
Дата 16.9.2013, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 26.8.2013

Репутация: нет
Всего: нет



Цитата(vadims @  1.7.2005,  14:44 Найти цитируемый пост)
использование русского языка в любом варианте очень сильно бы осложнило процесс, тк глядя на 'родное' слово тебе бы пришлось заставлять подсознание переводить его значение из общеупотребительного в контекст именно программирования
Тогда американцам следовало бы использовать за основу бейсика и фортрана какой-нибудь азиатский, например, русский язык. Но почему-то они спокойно программируют на языках с родной основой.

Добавлено @ 11:32
Цитата(Sardar @  6.7.2005,  12:37 Найти цитируемый пост)
Генерить код другого языка можно если твой язык очень похож на целевой.
Как раз сходство языков напрочь лишает двойную трансляцию всякого смыла. Зачем учить язык, похожий на промежуточный, если всё тоже самое можно написать на самом промежуточном языке? Промежуточный язык нужен в том и только в том случае, если разработка хотябы некоторых программ непосредственно на нём кардинально сложнее, что возможно только при принципиальном различии не только исходного и промежуточного языков, но и их парадигм. Например, алгоритмический/процедурный/объектно-ориентированный исходный язык и кодированный промежуточный. В крайнем случае объектно-ориентированный исходный и процедурный/алгоритмический промежуточный, но тогда сомнителен выбор промежуточного, так как можно ведь сразу компилировать в кодированный. А вот язык ассемблера в качестве промежуточного языка даёт независимость реализации исходного языка от целевых опкодов, целевого порядка байт, лишь бы только совпадали наборы самих операций и регистров и списки доступных разрядностей операндов и способов их адресации для каждой операции и хоть какое то сходство наблюдалось в схемах адресации, а байт-код не требует и этого. То есть можно одним компилятором за один проект реализовать один диалект на не совместимых процессорах и на платформах с несовместимыми форматами заголовков исполняемых файлов PE/ELF. Вторую версию компилятора только собрать, чтоб сам мог на не совместимой платформе работать, или вообще кросить первую компиляцию приложений, а только вторую выполнять на целевой платформе.

Это сообщение отредактировал(а) ТарасАтавин - 16.9.2013, 11:40


--------------------
Не так всё плохо, как оно есть на самом деле.
PM MAIL   Вверх
ТарасАтавин
Дата 16.9.2013, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 26.8.2013

Репутация: нет
Всего: нет



Цитата(Sardar @  6.7.2005,  12:37 Найти цитируемый пост)
Фишка ведь легко реализуеться, компилятор генерит таблицу символов(имён всех переменных/функций/...) и не смотрит существует ли переменная. Затем линковщик собираетвсе обрывки кода до целого имея все обьявления переменных. Подход не удобен, так как ошибки находяться напоздней стадии компиляции.
Импортируемые переменные всё равно должны быть объявлены в импортирующем модуле. А вот четырёхпроходная компиляция, при которой сначала строится таблица констант, потом таблица типов, потом таблицы переменных и подпроггамм, только потом начинается кодогенерация, как раз естественно позволяет не зависеть от того, предшествуют ли декларации использованию. Если есть ссылки, то заполняем таблицу ссылок на четвёртом проходе, а кодогенерацию выносим на пятый. Если типы используют друг друга и/или есть типизированные константы, то делаем переменное количество проходов компиляции и выносим кодогенерацию на последний. При двух и более проходной компиляции как раз контроль того, что декларация величины должна предшествовать её использованию, требует дополнительных действий и дополнительных данных и усложняет реализацию компилятора.

Добавлено через 3 минуты и 38 секунд
Цитата(Sardar @  6.7.2005,  12:37 Найти цитируемый пост)
но по крайней мере в Java обьекты реализованны на уровне виртуальной машины, т.е. твой язык уже будет обьектно-ориентированным изначально. Впрочем это наборот хорошо  Также ты будешь юзать все сущесвующие библиотеки, что в конце концов приведёт к Java в другом синтаксисе. Например как JPython компилируемый в байткод Java уже и не питон почти...
Во-первых у джавы как раз проблемы с объектами. А во-вторых если библиотеки означали бы язык, то под виндой и язык ассемблера был бы си плюс плюсом. Библиотеки к языку вообще не относятся.

Добавлено через 11 минут и 7 секунд
Цитата(Sardar @  6.7.2005,  12:37 Найти цитируемый пост)
Только человеку читать такое будет не реально. По моему был такой язык PL/2, там было что то подобное:
IF IF = ELSE THEN ELSE = IF ELSE IF = ELSE
На спектрумовском бейсике можно писать: 
Код
INPUT INPUT
IF IF=THEN THEN LET LET=10*INPUT
LET PRINT=LET^2
PRINT PRINT
. Достигалось элементарно: байт-кодов в качестве промежуточного языка, трансляция в него при наборе и контекстно-зависимая раскладка клавиатуры. Но без контекстной зависимости разобрать такой текст становится не возможно. Оператор IF кодировался одним байтом, не имевшим ничего общего с кодированием букв I и F, а переменные кодируются иначе, чем операторы.

Добавлено через 12 минут и 28 секунд
Цитата(Се ля ви @  6.7.2005,  15:52 Найти цитируемый пост)
Можно же создавать более высокоуровневые языки непохожими на то, во что они интерпретируются... 
плюсы не интерпретируются.


--------------------
Не так всё плохо, как оно есть на самом деле.
PM MAIL   Вверх
ТарасАтавин
Дата 16.9.2013, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 26.8.2013

Репутация: нет
Всего: нет



Цитата(Sardar @  6.7.2005,  16:43 Найти цитируемый пост)
Очень редко когда интерпретатор воспринимает чистый код языка, почти всегда он прекомпилируеться в некоторую промежуточную форму, состоящую преимущественно из простых операций. 
Интерпретаторы как раз не компилируют ни когда и всегда исполняют только входную форму. Уже автору нескольких интерпретаторов можешь поверить.

Добавлено через 6 минут и 5 секунд
Цитата(Sardar @  6.7.2005,  16:43 Найти цитируемый пост)
Например циклы (for/while) компилируються в goto с метками. 
Нет. Циклы иногда компилируются в конструкции на составной операции DEC JNC, в некоторых языках ассемблера даже обозначенных LOOP (цикл). И даже если в конце оказываются раздельные операции DEC/INC CMP JNE, то это всё таки не IF, а низкоуровневая цепочка, полученная непосредственно компиляцией цикла.


Это сообщение отредактировал(а) ТарасАтавин - 16.9.2013, 12:05


--------------------
Не так всё плохо, как оно есть на самом деле.
PM MAIL   Вверх
ТарасАтавин
Дата 16.9.2013, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 26.8.2013

Репутация: нет
Всего: нет



Цитата(Sardar @  6.7.2005,  16:43 Найти цитируемый пост)
Интерпретатор выходит простым и очень быстрым. Собственно из-за скорости и простоты нужна эта промежуточная форма кода.
Бред. Для быстрого исполнения нужна оптимизирующая компиляция в натив. Интерпретаторы тормозят всегда. В плохих случаях в десятки-сотни тысяч раз, в хороших на доли процента, но в принципе тормозят всегда. Это связано с тем, что при исполнении любой интерпретируемой программы на любом языке всегда одновременно происходит второй процесс (в обыденном смысле слова) - пооператорная трансляция той же программы, такое совмещение двух процессов есть суть интерпретации, а второй процесс неизбежно занимает процессорные операции и машинное время, что и замедляет исполнение. Можно мириться, например, с интерпретацией CISC опкодов RISC ядром, как делают пентиумы, но всё равно по сравнению с настоящим RISC-процессором на той же технологии получаем заметные тормоза, а мириться с ними можно ради совместимости. Иногда можно ради переносимости мириться с незаметными тормозами интерпретаторов байт-кода. Но джаву в байт-код компилирует не интерпретатор, а компилятор джавы, если же ту же джаву оптимально скомпилировать в натив и скормить не интерпретатору, а непосредственно процессору, то исполняться она будет хоть на проценты/дои процента, но быстрей, почему и актуальна разработка джит-компиляторов байткода.

Добавлено @ 12:24
Цитата(Sardar @  6.7.2005,  16:43 Найти цитируемый пост)
Например в Java есть опкод new <ссылка на класс> 
В джаве нет опкодов. Опкод - это числовое выражение кода операции в нативе. Из джавы можно сделать опкоды, но получится уже не дждава, а натив.

Добавлено @ 12:28
Цитата(Sardar @  12.7.2005,  16:11 Найти цитируемый пост)
Перевод одного формального языка в другой, при этом языки родственными быть не должны. КАк если бы Java в Haskell перевести, по моему это физически не возможно. 
Как раз не похожие языки отлично переводятся, а разные диалекты бейсика друг в друга даже вручную не переводятся вообще, только восстанавливать из проги постановку задачи и заново решать на другом диалекте.

Добавлено через 8 минут и 41 секунду
Цитата(LSD @  13.7.2005,  09:36 Найти цитируемый пост)
И там и там, набор результирующих средств практически одинаков. 
И этот человек обсуждает разработку программ на русском.


Это сообщение отредактировал(а) ТарасАтавин - 16.9.2013, 12:28


--------------------
Не так всё плохо, как оно есть на самом деле.
PM MAIL   Вверх
ТарасАтавин
Дата 16.9.2013, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 26.8.2013

Репутация: нет
Всего: нет



Цитата(TP@MB@Y @  14.7.2005,  01:36 Найти цитируемый пост)
хотя это звучит парадоксально - мол русский человук напрягает мозг, чтобы понять смысл русского слова =))
Так ведь из русского оно только заимствовано, но уже не русское. Бейсик-оператор LET - и английское слово let - слова разных языков. И значения у них разные. Английское let - пусть, давай, разреши, на бейсике LET - присвой, измени. Модальный глагол предположения/предложения и обычный гагол в повелительном наклонении. Английское print и print на бейсике ближе, но это тоже слова разных языков. Английское if и if на байсике полностью идентичны и по написанию/произношению, и семантически, но и это слова разных языков. Слова странника лишь заимствованы из русского языка, но русскими не являются точно также, как слова паскаля не являются английскими.

Добавлено через 9 минут и 25 секунд
Цитата(LSD @  14.7.2005,  09:56 Найти цитируемый пост)
Не настолько они разные, для кодогенератора не большая разница что именно генерировать строку xor eax,eax или последовательность байт 66 33 C0.
Эта разница появляется, если вместо 66 33 C0 на другом камне та же цепочка будет 66 33 33, или C0 C0 66, или 78 104 67, или вообще 12 55 67 34 106 77. Или если надо изменить формат заголовка бинарника. Пусть за исполняемый код отвечает линкер. Но объектные то бинарники поставляет компилятор. При использовании языка ассемблера в качестве промежуточного языка не имеет значения, как именно кодируются те же самые операции, достаточно выдать txt в единой кодировке на языке ассемблера, а потом передать на окончательную сборку в разные ассемблеры. Если не меняется адресация, то и формат заголовка бинарника значения уже не имеет, но к PE/ELF это врядли относится. А в случае байт-кода относится и к ним.


--------------------
Не так всё плохо, как оно есть на самом деле.
PM MAIL   Вверх
ТарасАтавин
Дата 16.9.2013, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 26.8.2013

Репутация: нет
Всего: нет



Цитата(Sardar @  14.7.2005,  16:36 Найти цитируемый пост)
Это очень условно, через чур я бы сказал... Байткод он более свободен чем Java код(см. пример выше), хотя и достаточно "высокоуровен", что бы свободно читаться и декомпилироваться. Хотя после обфускатора, не того что имена убивает, а обфускатора кода, редко какой декомпилер сможет восстановить текст Java кода. Попробуй декомпильнуть, хотя бы в уме обычный х86 код, посмотри в любом дизассемблере. Отсюда может быть и ясно, что код можно "перевести" из любого языка в любой другой, но на практике это не на столько оптимистично
Это не обфускация, а компиляция в натив. И даже после неё можно из натива восстановить c++. Имена будут напрочь потеряны, появятся лишние инлайновые функции, если дажва вообще поддерживает инлайн, то часть исходных инлайн-функций может исчезнуть, поменяется строй программы. Но семантика будет восстановлена. Иногда для этого даже читать код не надо, достаточно погонять прогу в качестве пользователя, а потом реинженерить её, но не факт, что при этом сохранятся хотя бы алгоритмы, даже при решении СЛАУ элементарно можно Гаусса Крамером заменить, или наоборот.



--------------------
Не так всё плохо, как оно есть на самом деле.
PM MAIL   Вверх
Dikovinka
Дата 2.10.2013, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 3.10.2012

Репутация: нет
Всего: нет



Если посмотреть на этот вопрос с высоты птичьего полёта то можно заметить две противоборствующие тенденции - к глобализации (e.g. использование английского) и информационной сегментации (e.g. использование русского). В целом, (было доказано на примере национальных ТV broadcasts), чем выше уровень развития технологий тем мощнее проявляет себя тенденция именно к отделению от внешнего информационного пространства. Поэтому я допускаю что в России вопрос о создании нового языка программирования если и не назрел то во всяком случае имеет свои объективные предпосылки (хотя и не знаю при решении каких задач программирование  основанное на великом богатом и могучем русском языке ДЛЯ СУЩЕСТВУЮЩИХ КОМПЬЮТЕРОВ может дать существенные преимущества). С другой стороны, hardware technology не стоит на месте и в будущем такой язык вполне может понадобиться программистам работающим с новыми поколениями компьютеров. Только это будет уже совсем другое программирование ...

Это сообщение отредактировал(а) Dikovinka - 2.10.2013, 00:05
PM MAIL   Вверх
dmtalm
Дата 14.8.2016, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 14.8.2016

Репутация: -1
Всего: -1



Может для начала создать что-то типа клея:
Пример
открыть файл "моя статья" программой editText
- editText (моя статья) ждет ввода команды
найти все "[email protected]" заменить на "[email protected]"
- editText (моя статья) замена произведена
выслать файл адресатам из списка "получатели статей"

Т.е каждая программа будет поддерживать свой список команд, который и будет предлагать пользователю. Знаю что это и сейчас возможно, но не на русском...
Можно создать оболочку, которая будет предлагать список программ с данной технологией...
PM MAIL   Вверх
_zorn_
Дата 15.8.2016, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: нет
Всего: 12



Может для начала стоит смотреть на даты сообщения ?

А если по теме, то идите вы в ОПУ с ЯП на русском. Почему например руби не на японском ? Наверное потому что создатель не идиот ?
PM MAIL   Вверх
dmtalm
Дата 16.8.2016, 16:45 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 14.8.2016

Репутация: -1
Всего: -1



Иди сам. Дату я видел
PM MAIL   Вверх
_zorn_
Дата 27.8.2016, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: нет
Всего: 12



1c "язык" видимо все любят ? smile Еще четкие ХМЛ с русскими тегами можно экспортировать. Патриоты ческазать )
Про идиотизм этого всего наверное в последнюю очередь задумывались...
Кирилические домены все дела  smile 

Это сообщение отредактировал(а) _zorn_ - 27.8.2016, 14:07
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила раздела "Философия программирования":
Се ля ви

Форум "Философия программирования" предназначен для обсуждения вопросов, так или иначе связанных с философскими аспектами разработки ПО:

• вопросы перспективного развития методов написания ПО;

• изменяющиеся языки и методологии программирования;


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Философия программирования | Следующая тема »


 




[ Время генерации скрипта: 0.1754 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.