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

Поиск:

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


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

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



 Когда я смотрю на языки программирования типа Алгола или встроенного скриптового языка 1С, у меня часто возникает подсознательное отвращение к ним - но долгое время я не мог понять, почему? Вроде бы, идея здравая и в чём-то даже патриотичная (по форме) - сделать русский язык программирования - чем плохо?

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

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

Что думаете?

Это сообщение отредактировал(а) Се ля ви - 10.12.2006, 13:16


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
simanyay
Дата 1.7.2005, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Антон Ковалёв
****


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

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



Есть один чувак... Горлов фамилия у него. Думаю его это заинтересует :-)


--------------------
«It's better to be a pirate than to join the Navy» — Steve Jobs.
PM MAIL WWW   Вверх
Bikutoru
Дата 1.7.2005, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

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



Цитата
по-настоящему русский язык программирования

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

Это сообщение отредактировал(а) Bikutoru - 1.7.2005, 14:04


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
vadims
Дата 1.7.2005, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



На самом деле я не все уяснил относительно парадигм, но мое мнение:
использование русского языка в любом варианте очень сильно бы осложнило процесс, тк глядя на 'родное' слово тебе бы пришлось заставлять подсознание переводить его значение из общеупотребительного в контекст именно программирования
Ведь оператор/мнемоника - это не слово, а конструкция

В годы студенчества был ассемблерный отладчик для БК 'Грот'
Потом появился ПРОТ - ужас перевели на мнемоники русский, например
wait
halt
ret
mov
jmp

получилось
стой
жди
вернуть
послать
иди

к последним двум так и хотелось добавить 'на' smile

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




--------------------
Cpu not found ! Press any key for software emulation.
PM MAIL   Вверх
Driv3r
Дата 3.7.2005, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я вот как раз подумываю о разработке русскоязычного языка программирования.
PM MAIL   Вверх
vadims
Дата 3.7.2005, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Driv3r
А можно узнать - какова цель проекта и что кроме 'родного' синтаксиса там будет нового


--------------------
Cpu not found ! Press any key for software emulation.
PM MAIL   Вверх
LSD
Дата 3.7.2005, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



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

Что думаете?

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


--------------------
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   Вверх
Се ля ви
Дата 5.7.2005, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

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



Цитата(vadims @ 3.7.2005, 17:26)
какова цель проекта

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


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
vadims
Дата 5.7.2005, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Се ля ви
Черт его знает конечно, процитирую себя любимого
Цитата(vadims @ 1.7.2005, 14:44)
использование русского языка в любом варианте очень сильно бы осложнило процесс, тк глядя на 'родное' слово тебе бы пришлось заставлять подсознание переводить его значение из общеупотребительного в контекст именно программирования
Ведь оператор/мнемоника - это не слово, а конструкция

Но не настаиваю - не спец
Единственное, чтобы посоветовал - прежде чем 'кидаться' на реализацию подобного проекта, все же посоветоваться с грамотными лингвистами и психологами, может оказаться, что все же твой постулат неверен - зря потратишь кучу времени




--------------------
Cpu not found ! Press any key for software emulation.
PM MAIL   Вверх
Се ля ви
Дата 5.7.2005, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

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



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


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
vadims
Дата 5.7.2005, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Се ля ви
Удачи ! И было бы очень интересно узнать о результатах, даже если они отрицательные


--------------------
Cpu not found ! Press any key for software emulation.
PM MAIL   Вверх
Sardar
Дата 5.7.2005, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



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

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


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Driv3r
Дата 5.7.2005, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(vadims @ 3.7.2005, 17:26)
Driv3r
А можно узнать - какова цель проекта и что кроме 'родного' синтаксиса там будет нового

Пока точно ничего сказать не могу.Единственное что могу сказать,то что в языке будет возможность объявлять переменную не только до её использования,но и после.
Например:
Код

Б=П^2;
цел Б,П;

PM MAIL   Вверх
vadims
Дата 5.7.2005, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Driv3r @ 5.7.2005, 19:47)
возможность объявлять переменную не только до её использования,но и после
Еще интереснее - зачем ? В принципе подобные подходы я где-то видел, но ...



--------------------
Cpu not found ! Press any key for software emulation.
PM MAIL   Вверх
Се ля ви
Дата 6.7.2005, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

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



Цитата(Sardar @ 5.7.2005, 13:52)
Цитата (Се ля ви @ 5.7.2005, 08:24)
сть подозрение, что подсознательно нам, в силу особенностей нашего разговорного языка, будет легче писать/разбирать чужой код на языке программирования, в котором за основу взят русский язык, а не английский. 

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


Ну, широка страна моя родная... smile А вообще, это было первое, что я подумал на этот счёт. По большому счёту можно его сделать пре-компилируемым, что бы из него получался Java или С++ код...


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
Akina
Дата 6.7.2005, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


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

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



Цитата(Driv3r @ 5.7.2005, 20:47)
в языке будет возможность объявлять переменную не только до её использования,но и после.

Лучше вместо smile это было еще в ВТ-128С для Электроники Д3-28 (эдакая помесь фортрана с барсиком, кстати двуязычная! ой, сколько я на нем программ понакропал...), но штука-то в общем имхо порочная, сродни отказу от явного объявления переменных...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
vadims
Дата 6.7.2005, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Akina @ 6.7.2005, 09:49)
это было еще в ВТ-128С для Электроники Д3-28
Точно точно, а я то думаю откуда это ? ВТ-МХТИ для Д3-28

Цитата(Akina @ 6.7.2005, 09:49)
штука-то в общем имхо порочная, сродни отказу от явного объявления переменных
Имхо: гораздо порочней, чем просто не объявлять - так хоть понятно что по умолчанию - а так сам запутаешься

Но может быть какой-то глобальный смысл есть - просто я его не вижу ???


--------------------
Cpu not found ! Press any key for software emulation.
PM MAIL   Вверх
Sardar
Дата 6.7.2005, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



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

Генерить байткод под Java/.Net/Python можно, но по крайней мере в Java обьекты реализованны на уровне виртуальной машины, т.е. твой язык уже будет обьектно-ориентированным изначально. Впрочем это наборот хорошо smile Также ты будешь юзать все сущесвующие библиотеки, что в конце концов приведёт к Java в другом синтаксисе. Например как JPython компилируемый в байткод Java уже и не питон почти...

Цитата(Driv3r @ 5.7.2005, 18:47)
Единственное что могу сказать,то что в языке будет возможность объявлять переменную не только до её использования,но и после.

Фишка ведь легко реализуеться, компилятор генерит таблицу символов(имён всех переменных/функций/...) и не смотрит существует ли переменная. Затем линковщик собираетвсе обрывки кода до целого имея все обьявления переменных. Подход не удобен, так как ошибки находяться напоздней стадии компиляции.

Народ специально делает язык "ограниченным", например запрет на использование ключевых слов как нормальных идентификаторов. Лексический анализ станет ещё проще, так как ключевые слова бдут распознаваться не на его уровне, а синтаксический без проблем разберёться где что. Только человеку читать такое будет не реально. По моему был такой язык PL/2, там было что то подобное:
Код
IF IF = ELSE THEN ELSE = IF ELSE IF = ELSE


Как выво: парсер никогда не ошибаеться, можно ввести какой угодно синтаксис. Perl кстати имеет один из таких мудрённых синтаксисов. Только человек испытывает трудности при чтении кода, именно для нас самих же мы делаем жёстки ограничения в синтаксисе языков.

Русский можно описать контекстно зависимой грамматикой со всем многообразием окончаний, приставок и вообще построения предложений. Другое дело что это очень обьёмная работа. Но теоретическая база с кодом под это дело есть smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Се ля ви
Дата 6.7.2005, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

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



Цитата(Sardar @ 6.7.2005, 12:37)
Генерить код другого языка можно если твой язык очень похож на целевой. Иначе это очень сложно и качественно никогда не будет.

Sardar, по-твоему, С++ похож на машинный код?.. smile Можно же создавать более высокоуровневые языки непохожими на то, во что они интерпретируются...


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
Sardar
Дата 6.7.2005, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Цитата
Sardar, по-твоему, С++ похож на машинный код?..

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


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

А что по твоему интерпретируеться? Очень редко когда интерпретатор воспринимает чистый код языка, почти всегда он прекомпилируеться в некоторую промежуточную форму, состоящую преимущественно из простых операций. Например циклы (for/while) компилируються в goto с метками. Все вычисления проводяться на стек либо в регистры (есть редкие регистровые интерпретаторы типа Parrot). Интерпретатор выходит простым и очень быстрым. Собственно из-за скорости и простоты нужна эта промежуточная форма кода.

В какую промежуточную форму компилить - без разницы. Ну почти, интерпретатор задаёт тип языка. Например в Java есть опкод new <ссылка на класс> , он на прямую поддерживает обьекты. А например интерпретатор Lisp'а или Hаskell это функциональные языки, там вся память в связанных списках. Интерпретаторов в мире много, можешь компилить под Python, Ruby, Parrot, PHP, Java, .Net и т.д. Можешь написать свой интерпретатор, благо теории/инфы очень много.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Andrey1
Дата 7.7.2005, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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

Андрей


--------------------
Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания.
из сутры помоста шестого патриарха Хуэйнена
PM MAIL WWW ICQ   Вверх
Driv3r
Дата 11.7.2005, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вообще-то русский синтаксис больше бы подошёл логическим и функциональным языкам,чем императивным и объектно ориентированным.Но такие языки к сожалению сами по себе не популярны.
PM MAIL   Вверх
LSD
Дата 12.7.2005, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Цитата(Sardar @ 6.7.2005, 17:43)
Это теория из функциональных языков, по моему реальных продуктов пока нет...

О каких именно продуктах идет речь?


--------------------
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   Вверх
Sardar
Дата 12.7.2005, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



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


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
LSD
Дата 12.7.2005, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Цитата(Sardar @ 12.7.2005, 17:11)
Перевод одного формального языка в другой, при этом языки родственными быть не должны. КАк если бы Java в Haskell перевести, по моему это физически не возможно.

Очень даже возможно, есть компилятор из ML в Java.


--------------------
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   Вверх
Sardar
Дата 12.7.2005, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Цитата(LSD @ 12.7.2005, 15:25)
Очень даже возможно, есть компилятор из ML в Java.

В байткод Java или текст Java? smile Это две совершенно разные вещи, я обьяснял уже выше.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Alex101
Дата 13.7.2005, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 891
Регистрация: 8.4.2002
Где: Москва

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



Когда я работал в компании Омега, там встроенные языки (программирования и запросов) были C/Pascal-подобный и SQL-подобный.
А могли запросто и сделать на русском.
Но все же, для программиста сейчас более привычны слова английского языка в программе, соответственно, на изучение языка тратится намного меньше времени, интуитивно понятно назначение операторов и функций.
Хотя в институте мы занимались полгода на машине, где языком программирования был русский - некая смесь ассемблера и бейсика.


--------------------
С уважением, А. Фролов.
PM MAIL ICQ   Вверх
LSD
Дата 13.7.2005, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Цитата(Sardar @ 12.7.2005, 20:01)
В байткод Java или текст Java?  Это две совершенно разные вещи, я обьяснял уже выше.

В байткод, но во первых JASM и ML также далеки как ML и Java, а во вторых я думаю построение компилятора в Java не отличается по сложности от компилятора в байткод. И там и там, набор результирующих средств практически одинаков.


--------------------
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   Вверх
Sardar
Дата 13.7.2005, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Цитата(LSD @ 13.7.2005, 08:36)
а во вторых я думаю построение компилятора в Java не отличается по сложности от компилятора в байткод. И там и там, набор результирующих средств практически одинаков.

На самом деле очень сильно отличаеться! Я повторяю, Java будем считать код в синтаксисе Java. Байткодом будем считать байткод Java. Это две разные вещи.
Конвертнуть C++ код в Java код(повторяю синтаксис, текст, а не байт код), довольно сложно, хотя языки семантически похожи. Откинем пока библиотеки и приёмы, будем рассматривать для простоты синтаксис. А если генерить реальный Java код, на существующих библиотеках, то дело совсем становиться не реальным, логика в либах совсем другая.

А попробуй конвертнуть большой C проект в Java? Например MySQL smile

Цитата(LSD @ 13.7.2005, 08:36)
но во первых JASM и ML также далеки как ML и Java

Не совсем, байткод он достаточно прост и даёт большую свободу. На байткод перенести прогу проще чем на формальный язык со сложным синтаксисом, у тебя просто нет свободы. Есть куча версий языков типа Python, Fort и т.д. которые компилируються в Java байткод, но это не говорит что эти языки родственны с Java, просто байткод даёт достаточно свободы что бы реализовать идею. Правда от стандартных библиотек никуда не убежишь smile

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


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
TP@MB@Y
Дата 14.7.2005, 01:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Когда я пытался разобраться в исходниках 1С, то меня брало бешенство и раздражение smile , потому что там очень много слов с одинаковыми предлонами и другими частями слова (сорри за коломбур). И причем каждый раз приходится напрягать мозг, чтобы понять то для чего предназначен оператор (по его названию), хотя это звучит парадоксально - мол русский человук напрягает мозг, чтобы понять смысл русского слова =))

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

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

Кстати, англо-языки даже полезно юзать: благодаря ним русский программист осваивает (хоть как-никак) английский язык. (Даже анекдот такой есть....)

smile
PM   Вверх
LSD
Дата 14.7.2005, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Цитата(Sardar @ 13.7.2005, 17:24)
На самом деле очень сильно отличаеться! Я повторяю, Java будем считать код в синтаксисе Java. Байткодом будем считать байткод Java. Это две разные вещи.

Не настолько они разные, для кодогенератора не большая разница что именно генерировать строку xor eax,eax или последовательность байт 66 33 C0.

Вообще компилятор это программа которая переводит текст с языка A на язык B, так что результаты интерпритации обоих программ, при одинаковых входных данных, будут одинаковыми. Так что с этой точки зрения компилятор в байткод и компилятор в другой язык не имеют принципиальных различий. Основная сложность состоит не в генерации кода, а в преобразовании дерева синтаксического разбора для одного языка, в дерево для другого.
Добавлено @ 09:59
Цитата(Sardar @ 13.7.2005, 17:24)
операции с файлами нельзя перевести на другой язык если там их не существует

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


--------------------
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   Вверх
Sardar
Дата 14.7.2005, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Цитата(LSD @ 14.7.2005, 08:56)
Не настолько они разные, для кодогенератора не большая разница что именно генерировать строку xor eax,eax или последовательность байт 66 33 C0.

Эм... а с каких пор Java стала похожа на ассемблер? JASM оставим в стороне, это ассемблер байткода smile

Для ясности пример Java кода:
Код
public class Test {
  protected String param;
  public Test(String a) {
     System.out.println("Got: "+(this.param=a));
  }
}


Цитата(LSD @ 14.7.2005, 08:56)
Вообще компилятор это программа которая переводит текст с языка A на язык B

Это очень условно, через чур я бы сказал... Байткод он более свободен чем Java код(см. пример выше), хотя и достаточно "высокоуровен", что бы свободно читаться и декомпилироваться. Хотя после обфускатора, не того что имена убивает, а обфускатора кода, редко какой декомпилер сможет восстановить текст Java кода. Попробуй декомпильнуть, хотя бы в уме обычный х86 код, посмотри в любом дизассемблере. Отсюда может быть и ясно, что код можно "перевести" из любого языка в любой другой, но на практике это не на столько оптимистично smile

Цитата(LSD @ 14.7.2005, 08:56)
Так что с этой точки зрения компилятор в байткод и компилятор в другой язык не имеют принципиальных различий.

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

Цитата(LSD @ 14.7.2005, 08:56)
Основная сложность состоит не в генерации кода, а в преобразовании дерева синтаксического разбора для одного языка, в дерево для другого.

Нет, основная сложность это перенести семантику исходного языка в семантику целевого языка. Остановимся на Java, попробуем перевести в "родственный" JavaScript. Большинство библиотек Java написанны на самой Java + JNI там где это необходимо. Представим интерпретатор JavaScript который также будет иметь JNI и юзать те же нативные библиотеки. Задача конвертнуть все библиотеки, весь код и сам проект в придачу в JavaScript, при условии что JavaScript код будет написан не натянутым за уши к Java(ведь в JS нет классов, модиффикаторов доступа и т.п., но это можно с оговоркой реализовать), а в том стиле, в каком принято писать на JS. Вся архитектура библиотек поменяеться, исчезнут множество классов, так как JS не имеет жёстких типов. А вложенные функции, прототипы, динамически изменяемые обьекты, это не каждый человек может в голове переварить пытаясь "перевести" Java код в JS, впрочем у человеку свойственно стопортиться на чём то одном и тормозить smile
Я как человек знающий JS могу сказать что код Python проще перевести на JS, чем Java, так как с последним используеться ну чуть ли не другая парадигма.

Цитата(LSD @ 14.7.2005, 08:56)
Ну операций с файлами на уровне языка я не видел вообще, это скорее на уровне стандартных библиотек. Но тут разговор особый.

Не скажи smile Определим пару базовых операций ввода/вывода на асме, они будут всего пару кб. Затем пишем на чистом C драйвер диска, файловой системы, кеша - в результате на уровне языка имеем операции с файлами. Естественно высокоуровневные языки придумывались для большей портабельности с одной машины на другую. Поэтому в языке нельзя писать на прямую в порты, так как на другой машине их может и не быть вообще, в смысле что архитектура машины может в корне различаться. Отсюда базовый слой непосредственной работы с машиной зачастую писан на асме, но такого когда в хорошей системе не много (это не камень в огород ассмеблерщиков smile )


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
JusTalionis
Дата 15.9.2006, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Друзья, мы оклонились от темы в детали. Вопрос-то был (как мне показалось) о существовании и целесообразности такой парадигмы программирования, для которой русский язык оказался бы предпочтительным.

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

Се ля ви: Стиль программирования может быть и возможен, где наиболее подходящим был бы русский как язык, но это, IMHO, дело очень далекого будущего, когда интеллектуальному компилятору вам придется объяснять, как строить программу, а не выписывать алгоритм, как сейчас. Потому что, в отличие от английского, русский существенно неалгоритмичен. 


Это сообщение отредактировал(а) JusTalionis - 15.9.2006, 13:29
PM MAIL   Вверх
integral
Дата 11.11.2006, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 3.7.2006
Где: Dnipropetrovs' ;k, Ukraine

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



А вообще в СССР создали когдато Рефал, на его диалектах щас в USA пишут smile


--------------------
import my.opinion.*;
жж
PM ICQ   Вверх
Exception
Дата 11.11.2006, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Всю тему читать не стал, так что просто позволю себе высказать своё мнение. А как бы вы отнеслись к ЯП на французском, испанском, китайском? Вся сила английского в его простоте. Если язык программирования с бедным синтаксисом на английском выглядит вполне нормально, то такой "корявый", машинный русский совершенно не воспринимается, по крайней мере, лично мной.
Пример:

Код

if (myObject is null)
{
  //...
}


vs

Код

если (мойОбъект это нуль)
{
  //...
}


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

Добавлено @ 17:25 
Цитата(Sardar @  14.7.2005,  17:36 Найти цитируемый пост)
Вообще компилятор это программа которая переводит текст с языка A на язык B


Прошу прощения, это транслятор. Компилятор есть транслятор в маш. код.

Добавлено @ 17:26 
тьфу, то есть это цитата LSD smile .
PM   Вверх
LSD
Дата 11.11.2006, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Ух ты какая тема всплыла, а я про нее и забыл smile


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

Да ничего он не свободней. По сути есть два языка, в одном есть некоторые "элементарные" операции, и в другом есть "элементарные" операции, плюс стандартные библиотеки, но тут вроде ясно, что надо делать. Вопрос только в том как перевести элементарную операцию языка А в последовательность элементарных операция языка Б (оптимизацию рассмотрим потом). Я не понимаю, почему операция add AX, BX дает большую свободу, чем A+B?


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

Именно так оно и есть (я про определение). Я вообще в данном контексте не говорил, про сложность. Есть ряд компиляторов в Java байткод (JPython, MidletPascal и т.п.) и есть достаточно эффективные декомпиляторы, которые могут по class файлам построить Java исходник. Вот тебе готовые компиляторы из одного языка в другой. А насчет обсфукаторов ты не прав, если они не применяют нелегальных приемов, типа кода после return и т.п., то декомпиляции достаточно эффективна. Я общался с ребятами которые делали компилятор из PL/SQL в Java, а эти языки очень различны.


Цитата(Sardar @  14.7.2005,  16:36 Найти цитируемый пост)
Определим пару базовых операций ввода/вывода на асме, они будут всего пару кб. Затем пишем  на чистом C драйвер диска, файловой системы, кеша - в результате на уровне языка имеем операции с файлами. Естественно высокоуровневные языки придумывались для большей портабельности с одной машины на другую. Поэтому в языке нельзя писать на прямую в порты, так как на другой машине их может и не быть вообще, в смысле что архитектура машины может в корне различаться. Отсюда базовый слой непосредственной работы с машиной зачастую писан на асме, но такого когда в хорошей системе не много (это не камень в огород ассмеблерщиков  )

В АСМ нет функций ввода вывода вообще. Там или можно вызвать функции ОС или обратится напрямую к аппаратуре, но это не функции ввода-вывода ассемблера.

Добавлено @ 17:34 
Цитата(Exception @  11.11.2006,  17:23 Найти цитируемый пост)
Прошу прощения, это транслятор. Компилятор есть транслятор в маш. код.

Это достаточно условно. Нет никаких принципиальных ограничение, на создание машины которая бы могла интерпретировать скажем ассемблерный код, и тогда транслятор из C++ в ASM, превратится в компилятор.
Но если хотите пусть будет транслятор.


--------------------
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   Вверх
Andrej_Inc
Дата 9.12.2006, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Русский компилятор, будет нереально сложно реализовать в полной мере, хотя удобство и свобода мысли на Русском - это заманчивая идея. Если такой язык и будет, то действительно только Русский Человек сможет его понять smile 
PM MAIL   Вверх
achepkunov
Дата 13.12.2006, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А мне тоже интересно. Я бы поучавствовал, может быть.

А можно еще какой пример, чтоб по-русски и с особенностями?

Насчет мертворожденности - ну когда же наконец 1с сдохнет, а? smile
PM MAIL   Вверх
smartov
Дата 13.12.2006, 12:48 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



Ну точно осеннее обострение. Бросайте вы эту идею про "Великий и могучий русский язык программирования".
PM MAIL   Вверх
Шатиров
Дата 31.5.2009, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Sardar @ 5.7.2005,  13:52)
Цитата
сть подозрение, что подсознательно нам, в силу особенностей нашего разговорного языка, будет легче писать/разбирать чужой код на языке программирования, в котором за основу взят русский язык, а не английский. 

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

Я не согласен с версией выкидыша!..
Всё же Россия не маленькая!
Я думаю, что создания в корне отечественную ОС максимально облегчит задачу создания программ на русском языке!
А если сделать двойной компилятор-интерпретатор!
Первая - переводчик из английского в русский основные понятия, слова!
Вторая тотальная, корневая и структурная локализация на отечественную ОС!
Так можно я думаю с MS и Mac на отечественную ОС и обратно! )))
полная совместимость и независимость в одном флаконе!!! Распространение точно будет в странах СНГ!!! Уверен! ))
И свободный конструктор для отечественной ОСи!!! ))))) Вот чего не хватает!.. ))
Осталось найти того, кто поднимит Российский статус информационного закупщика до конкурента!!!! ))))))))
Согласны со мной?? ))))
PM MAIL   Вверх
Vaulter
  Дата 31.5.2009, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Россия не маленькая только по территории, на которой некому жить
Население Китая - 1 322 178 190 чел.
Население Индии - 1 131 191 071 чел.
Население США - 303 824 646 чел.
Население Нигерии! - 146 255 312 чел. и растет на 2% в год

Население России - 141 927 900 чел.

о какой популярности идет речь?

русский язык не так прост семантически как английский. 
Кстати, русских ЯП не так уж мало. Начиная с 80х создавались кулибиными...
Да и сейчас. кому не хватает русского в ЯП, идите в 1Сники smile

Это сообщение отредактировал(а) Vaulter - 31.5.2009, 17:14


--------------------
PM MAIL WWW ICQ   Вверх
LSD
Дата 1.6.2009, 12:42 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Цитата(Шатиров @  31.5.2009,  00:47 Найти цитируемый пост)
Я думаю, что создания в корне отечественную ОС максимально облегчит задачу создания программ на русском языке!
А если сделать двойной компилятор-интерпретатор!
Первая - переводчик из английского в русский основные понятия, слова!
Вторая тотальная, корневая и структурная локализация на отечественную ОС!
Так можно я думаю с MS и Mac на отечественную ОС и обратно! )))
полная совместимость и независимость в одном флаконе!!! Распространение точно будет в странах СНГ!!! Уверен! ))
И свободный конструктор для отечественной ОСи!!! ))))) Вот чего не хватает!.. ))
Осталось найти того, кто поднимит Российский статус информационного закупщика до конкурента!!!! ))))))))
Согласны со мной?? )))) 

Ну прям выступление О. Бендера в шахматном клубе smile 


--------------------
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   Вверх
Samotnik
Дата 1.6.2009, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



встретился с ЯП на русском языке, только в универе, когда 4 лабы нужно было сдать в 1С.
Было жутко не привычно и не уклюже.  

Код

если (естьОбъект)


smile smile smile smile 
PM MAIL   Вверх
Keeper89
Дата 2.6.2009, 02:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Samotnik @  1.6.2009,  14:23 Найти цитируемый пост)
Было жутко не привычно и не уклюже.  

+1

Может в теме упоминалось, есть такой русский ЯП - ПРОФТ.



Это сообщение отредактировал(а) Keeper89 - 2.6.2009, 02:20


--------------------
PM MAIL WWW   Вверх
smartov
Дата 2.6.2009, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



Цитата(Keeper89 @  2.6.2009,  02:18 Найти цитируемый пост)
есть такой русский ЯП - ПРОФТ.

ПРОФИТ?!?!?  smile  smile 
PM MAIL   Вверх
Keeper89
Дата 2.6.2009, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



smartov, нет, немного отличается  smile 


--------------------
PM MAIL WWW   Вверх
Virtuos86
Дата 6.12.2009, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Лoгичecки вытeкaющaя мыcль из тoгo фaктa, чтo pyccкиe cлoвa кyдa кaк бoлee измeняeмыe пo-cpaвнeнию c aнглийcкими(я, кcтaти, гдe-тo читaл, чтo вce aнглийcкиe cлoвa, в кoтopыx бoлee 3-x cлoгoв - зaимcтвoвaныe; oтcюдa и лaкoничнocть aнглийcкoгo) этo тo, чтo пopядoк cлoв в пpeдлoжeнии нa pyccкoм языкe мoжeт быть пpaктичecки пpoизвoльным, в aнглийcкoм жe c этим cтpoгo.
Знaчит ли этo, чтo pyccкий ЯП дoлжeн пoзвoлять иcпoльзoвaть, нaпpимep, тaкиe кoнcтpyкции типa:
пepeмeннaя1 = 5 ecли пepeмeннaя == 7(пoxoжe нa Python или Ruby; paзницa в тoм, чтo тaм этo "cинтaкcичecкий caxap", a для нaшeгo языкa пoдoбный cинтaкcиc бyдeт нopмoй)
или
ecли (и > 4) (и = и + 1) для и в [2, 3, 4]
To ecть, дoлжeн ли тaкoй язык пoзвoлять тacoвaть тeлo и ycлoвиe циклa, нaпpимep?
Haвepнoe, нyжнo бyдeт выдeлять нeкиe блoки кoдa, тo ecть типa:
{блoк кoдa};
{блoк кoдa};
Cнaчaлa paзбивaeтcя нa выдeлeнныe блoки тeкcт пpoгpaммы, пoтoм пapcитcя/aнaлизиpyeтcя("ecли (и > 4) (и = и + 1) для и в [2, 3, 4]
" cxoдy выпoлнить пocлeдoвaтeльнo нe yдacтcя, этo oчeвиднo), и т.д..
Taкaя дoпoлнитeльнaя paбoтa нeгaтивнo cкaжeтcя ecли зaxoчeтcя cдeлaть язык cкpиптoвым.
Boзмoжнo, блoки нe oбязaтeльнo выдeлять пapными cкoбкaми, чтo ecли иcпoльзoвaть oдинoчный cимвoл, aнaлoг тoчки в oбычнoм литepaтypнoм языкe, мoжeт быть тoжe тoчкy(xoтя мнe импoниpyeт дpyгoe нaзнaчeниe тoчки, кaк в Python). Mы иcпoльзyeм тoчки, чтoбы paздeлять нa oтдeльныe лoгичecки oбocoблeнныe кycки - пpeдлoжeния - тeкcт, и зaпятыe, чтoбы paздeлять нa тaкиe жe лoгичecкиe кycoчки caми эти пpeдлoжeния, а также точки с занятой для обособления простых предложений в сложном предложении.
Haпpимep:
. фyнкция пpoвepкa чиcлa зyбoв (чиcлo зyбoв); ecли чиcлo зyбoв < 32 тo вoзвpaщaeм "Baм нyжнo к cтoмaтoлoгy", инaчe ecли чиcлo зyбoв == 32 тo вoзвpaщaeм "Улыбниcь во все свои зубы".
или
. класс Простой класс(Базовый класс); создание экз: пусто; удаление экз: удалить экз. один = Простой класс(). удалить один. . .
Ещё одна удачная аналогия - многоточие указывает на конец программы.
Xoтя, вce нaпиcaннoe вышe впoлнe вoзмoжнo вceгo лишь бpeд, ибo чepecчyp yж я тopoплюcь, и тoлкoм oбдyмaть cвoю мыcль нe ycпeл, a дepжaть в ceбe тяжeлo ;).
He cyдитe cтpoгo ;)
PM MAIL Jabber   Вверх
Шатиров
Дата 16.12.2009, 06:13 (ссылка)    | (голосов:6) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ребятки, я считаю (тоже давно уже озабочен этой темой), надо начинать отводить граждан России, которые хотят заняться написанием грамотных программ, У меня куча идей например, а писать в С++ или остальных англах ну никак не хочется!!!
Хотя язык знаю вполне хорошо!!! Для программиста сойдёт!..
У России были, есть и будут хорошие умы! И как обычно их не будут тут замечать, пока не припрёт из-за политической важности!!! ))
А я считаю к этому всему, что компьютерные продукты пора выпускать и Отечественные!!!!! С Отечественной ОС, а не UNIX... или типа того!!!
Можно конечно некоторое скопировать, основу я допущу, но дальше то надо своим умом!!! Мне очень сейчас огорчительно смотреть, что сегодня Российских разработчиков не так уж и много!!!!! Хотя УМА у СЛАВЯН видно больше, если у нас не узко структурный язык "анг"!!! ))))
И этой индивидуальностью надо пользоваться!!! Тетрис знаменитый и самый кассовый кто и где придумал?? )))) Не знаете?? )))))))
Русские программисты!!!!!! ))))))))) Никто до такого не догадался бы, а у нас по природе мозги не в черепной коробке, а в душе!!!!!!!
А душевность каждого безгранична!!! У нас не такой узкий взгляд на вещи!!! )))) Каждый в чём-то хорош! ))
Просто у американцев появилась кучка интузиастов, как мы с Вами и они начали, ну не скажу "творить"!.. ))) Сначала Выбиваться своей никак не относящейся к компам продукции и со временем они что-то сделали тут, что-то увидели там, что-то добавили к увиденному от себя!..Ну это естественная творческая работа, а энтузиазм 100-150% увеличения производительности каждого человека!!!!!! ))))))) И говорить, что нет смысла, действительно нет смысла, так как люби которые хотят сделать не ради просто так, а на пользу РОДИНЫ !!!!!! Такого просто не может повернуться язык!!!! ))
Я сам хочу заняться написанием Асма на Русском, но уверен, что для проверочной работы, нужны те, кто знает ОЧЕНЬ ХОРОШО Русский язык!!!!! ))))))
Тогда народ перед написанием проги будет тратить время не на изучение кода С++ и английского, а поглубже окунётся в Родную речь!!!!!!!!!! )))
Сейчас эта тема актуальна, поверьте мне!!! )))))) Россия сейчас выходит на самоокупаемость и потихонечку отказывается от западной продукции!........... ))
А программный код не западный разве!? ))) Там пентагон соберёт консилиум проф-проггеров, закажет им непостижимый на коде win  например в данный момент вирус, а они могли, могут и будут моч на такие вот операции!!! ))
Политика,  как большие шахматы, но сдать игру тут можно всего лишь один раз!... ))))) Победителю ВСЁ !!!  )))) Вот такая у нас жизнь!!! ))))
Всё в руках любителей!!! ))))) Профессионалы построили Титаник, а любитель Ковчег!!! )))))))) Сила любого правительства кроется в его народе!!! )))
Лучшего места чем сейчас, никому и никогда не найти!!! )))))) Я считаю, надо не спорить "зачем - да незачем!" А сделать и исправлять ошибки!!! )))))
Так будет быстрее!!!!!! ))
PM MAIL   Вверх
Lazin
Дата 16.12.2009, 08:57 (ссылка) |    (голосов:7) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



И тут Остапа понесло smile

Добавлено через 2 минуты и 8 секунд
когда-нибудь и я смогу такие тексты выдавать... может быть xD

Добавлено через 5 минут и 34 секунды
вообще, ЯП должен основываться на математической нотации,
Код

sum [n | n <- [1..1000-1], n `mod` 5 == 0 || n `mod` 3 == 0]

 и еще, он должен быть понятным большинству программистов в мире, так-как уже давно нет ничего чисто российского или чисто американского, особенно в сфере IT


PM MAIL Skype GTalk   Вверх
GoldFinch
Дата 16.12.2009, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



Lazin
+100
программирование - не только инженерия, но еще и наука
предлагать "русский" ЯП - это всеравно что предложить писать вместо sin, cos, log, exp "русские" аналоги

PM MAIL ICQ   Вверх
smartov
Дата 16.12.2009, 14:58 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



Шатиров, у вас наверное закончились. На всякий случай подброшу - пользуйтесь.

!!!!!!!!!)))))))))))))) )!!!!!!)))))))))))))))))))))))))))))))))))) !!!))))))))))))))))))))))) !))))))))))))))) !))))))))))))) )))))!!!!!!!!
))))))) ) ))))))))))))))))))))))))))))))) )))) !) )))))))))) ) ) !!)))))))))))))))))))))!!!!!!

PM MAIL   Вверх
gcc
Дата 18.12.2009, 02:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

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



можно использовать FILTER и писать на любы языках

вот я видел тут пример:
http://search.cpan.org/~dmow/PlusPlus-1.23/PlusPlus.pm
http://search.cpan.org/dist/MooseX-Method-...d/Signatures.pm

Это сообщение отредактировал(а) gcc - 18.12.2009, 11:20
PM WWW ICQ Skype GTalk Jabber   Вверх
Шатиров
Дата 21.12.2009, 13:14 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




Модератор: Сообщение скрыто.

PM MAIL   Вверх
LSD
Дата 21.12.2009, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



А про переезд столицы в Нью-Васюки скоро будет? !!!! )))))))))))))))))))))))))))))))))))))))))))))


--------------------
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   Вверх
Lazin
Дата 21.12.2009, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Шатиров, вы случайно не Сергей Владимирович? smile
PM MAIL Skype GTalk   Вверх
cameobar
Дата 17.1.2010, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




Модератор: Сообщение скрыто.

PM MAIL   Вверх
x8m6
Дата 27.6.2010, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Выдержка из баша:
Код

DarkMik: .oO(эх,хорошо американским программистам...С кодировкой не мучиться,маны все на родном языке...
savonarola: DarkMik представь что ф-ии зовутся СоздатьФайл() , ЖдатьМногоОбъектов()... я бы помёр
Punk-Grunger: Кнопго.Видеть=Не правда
molnij: угу, я как смотрю народ на 1С пишет на русском - пытаюсь понять как у них мозги не плавяться...
savonarola: ЖдатьМногоОбъектов( мойФайлРучка ) 


PM MAIL   Вверх
bems
Дата 29.6.2010, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



Это всё мелочи, ребята. 
Вы вот эту тему вспомните http://forum.vingrad.ru/forum/topic-121590/view-all.html
Особенно участника "Сый". А ныне администратор рукипедии smile


--------------------
Обижено школьников: 8
PM MAIL   Вверх
smartov
Дата 29.6.2010, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



Цитата(bems @  29.6.2010,  07:48 Найти цитируемый пост)
А ныне администратор рукипедии 

Откуда знаешь?
PM MAIL   Вверх
bems
Дата 29.6.2010, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



Цитата(smartov @  29.6.2010,  09:00 Найти цитируемый пост)
Откуда знаешь? 

Ошибочка вышла, просто участник. Он так активно участвовал в некоторых обсуждениях за удаление статей, что я подумал это признак власти. Не.
Вот ссылка http://ru.wikipedia.org/wiki/%D0%A3%D1%87%...%A1%D1%8B%D0%B9


--------------------
Обижено школьников: 8
PM MAIL   Вверх
ValeryLaptev
Дата 22.8.2010, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Препод



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 19.8.2010
Где: Астрахань

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



Вообще-то русскоязычный ЯП может быть весьма полезен в школе при обучении программированию 5-6-классников. Опыт есть, описан на сайте Информатика-21. Рекомендую почитать, весьма интересное чтиво.
PM MAIL   Вверх
БелАмор
Дата 22.8.2010, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Есть ещё один минус: резкое увеличение ошибок в коде...
Вы когда-нибудь видели, чтобы русскоязычный программист (даже с жуткого бодуна) писал что-нибудь вроде такого:
Un known
Ab normal
Ab solute

А на русском - сколько угодно:
Цитата(Samotnik @  1.6.2009,  13:23 Найти цитируемый пост)
Было жутко не привычно и не уклюже

PM   Вверх
Vasay
Дата 22.8.2010, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Пришлось тут за одЫн сЫ взяться. 

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


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
Драконограф
Дата 23.8.2010, 05:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вроде идею изменяемости (по-моему, у лингвистов такие языки "флективными" называют) для прогязыка реализовал наш разработчик Паронджанов - только на графической базе. У него отдельные вершины-операторы графа алгоритма (программы) модифицируются добавлением других вершин (присоединением справа или слева). Свой язык граф-схем он описал в ряде публикаций, в частности, в этой книге, есть и другое описание в этом разделе. Язык активно обсуждается, например, на этом форуме ,уже пробуют делать среды под него, на этот счёт можно почитать, в частности, на этой странице.
В принципе конечная цель создания языка - "скрещивать" его (в части текста вершин) как с родным языком, так и с прогязыком, чтобы по графу генерировать текст алгоритма (программы).
PM MAIL   Вверх
bems
Дата 24.8.2010, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



А почему бы не программировать на клингонском?


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Shaggie
Дата 24.8.2010, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(bems @  24.8.2010,  11:35 Найти цитируемый пост)
А почему бы не программировать на клингонском? 


уже


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
bems
Дата 24.8.2010, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



Я должен был догадаться что я не первый smile


--------------------
Обижено школьников: 8
PM MAIL   Вверх
уни
Дата 6.10.2010, 18:33 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

Ещё я заметил просто невероятную зомбированность программистов, которые привыкли писать на английском, а всё остальное - от сатаны smile как прям с промытыми мозгами... не иначе.
Вы почему не считаете время, которое каждое поколение наших программистов тратит на изучение английского? И самое смешное никто из них не мыслит в английских образах. Все (подавляющее большинство) программеры переводят в уме слова в русские образы и тем самым делают двойную работу. Это одна из причин нашего отставания в этой области. То время, что мы занимаемся переводами они используют для придумывания всё новых технологий. Вот и всё. Вы умножьте всю армию проргаммеров на эти 2 года и так каждые 5-8 лет. Цифра просто будет поражать сколько времени уходит в свисток. Они же перенимают знания от предков непосредственно. Я уж не говорю про нашу армию и оборонку вообще, где должны использоваться только русские языки программирования. Или тут кто-то вражина есть, которая хочет того, чтобы исходники наших секретных программ прям на английском писались? Сталин бы тут за это дело сразу сказал: "Растрелять..."

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

    public char Символ() {
        if ( Свойства.Позиция >= ( Свойства.Размер - 1 ) )
            return ' ';
        return Текст.charAt( (int) ++Свойства.Позиция );
    }

    public int ПолучитьЭлемент() throws Exception {
        char Литера;

        do {
            if ( Свойства.Позиция >= ( Свойства.Размер - 1 ) ) {
                Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
                return Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_КОНЕЦ;
            }
            Литера = Символ();
        } while ( ( Литера == ' ' )
                || ( Литера == '\t' )
                || ( Литера == '\r' )
                || ( Литера == '\n' ) );

        // Множество управляющих символов
        if ( Литера == ';' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
//            if ( Свойства.Позиция >= ( Свойства.Размер - 1 ) ) {
//                return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_КОНЕЦ );
//            }
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ВЫВОД );
        }
        // Множество операций
        else if ( Литера == '*' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_УМНОЖИТЬ );
        }
        else if ( Литера == '/' ) {
            long врм = Свойства.Позиция;

            Литера = Символ();
            // Пропуск строчного комментария
            if ( Литера == '/' ) {
                do {
                    if ( Свойства.Позиция >= ( Свойства.Размер - 1 ) ) {
                        Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
                        return Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_КОНЕЦ;
                    }
                    Литера = Символ();
                } while ( !( ( Литера == '\r' ) || ( Литера == '\n' ) ) );

                return ПолучитьЭлемент();
            } else {
                Свойства.Позиция = врм;
            }

            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ДЕЛИТЬ );
        }
        else if ( Литера == '+' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ПЛЮС );
        }
        else if ( Литера == '-' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_МИНУС );
        }
        else if ( Литера == '^' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_СТЕПЕНЬ );
        }
        else if ( Литера == '!' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ФАКТОРИАЛ );
        }
        else if ( Литера == '(' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ЛЕВАЯСКОБКА );
        }
        else if ( Литера == '[' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ЛЕВАЯКВАДРСКОБКА );
        }
        else if ( Литера == ']' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ПРАВАЯКВАДРСКОБКА );
        }
        else if ( Литера == ')' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ПРАВАЯСКОБКА );
        }
        else if ( Литера == '=' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ПРИСВОИТЬ );
        }
        else if ( Литера == ',' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ЗАПЯТАЯ );
        }

        // Строка текста, заключённая в кавычки
        else if ( Литера == '"' ) {
            Свойства.СтрокаЗначение = "";
            Литера = Символ();
            while ( Литера != '"' ) {
                Свойства.СтрокаЗначение += Литера;
                Литера = Символ();
            }
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ТЕКСТ );
        }

        // Множество целых чисел
        else if ( ( Литера >= '0' ) && ( Литера <= '9' ) ) {
            String Число = "" + Литера;
            Литера = Символ();

            while ( ( ( Литера >= '0' ) && ( Литера <= '9' ) ) ) {
                Число += Литера;
                Литера = Символ();
            }

            Свойства.ЧислоЗначение = Integer.parseInt( Число );
            Свойства.Позиция--; // возвращаем позицию на предыдущий символ
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ЧИСЛО );
        }

        // Множество имён
        else if ( ( ( Литера >= 'a' ) && ( Литера <= 'z' ) ) 
                || ( ( Литера >= 'A' ) && ( Литера <= 'Z' ) )
                || ( ( Литера >= 'А' ) && ( Литера <= 'я' ) )
                || ( Литера == 'Ё' )
                || ( Литера == 'ё' )
                || ( Литера == '_' )
                ) {
            Свойства.ИмяЗначение = "" + Литера;
            Литера = Символ();

            while ( ( ( Литера >= 'a' ) && ( Литера <= 'z' ) ) 
                    || ( ( Литера >= 'A' ) && ( Литера <= 'Z' ) )
                    || ( ( Литера >= 'А' ) && ( Литера <= 'я' ) )
                    || ( Литера == 'Ё' )
                    || ( Литера == 'ё' )
                    || ( ( Литера >= '0' ) && ( Литера <= '9' ) )
                    || ( Литера == '.' )
                    || ( Литера == '_' )
                    ) {
                Свойства.ИмяЗначение += Литера;
                Литера = Символ();
            }
            Свойства.Позиция--; // возвращаем позицию на предыдущий символ
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            
            // Ключевые слова
            if ( ( Свойства.ИмяЗначение.equals( "true" )
                    || ( Свойства.ИмяЗначение.equals( "false" ) )
                    ) ) {
                return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_КЛЮЧЕВОЕ_СЛОВО );               
            }

            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ИМЯ );
        }

        throw new ИсключениеРазборщика( ОШИБКА_НЕИЗВЕСТНЫЙ_СИМВОЛ );
    }

    public ОбразРезультата ОсновныеОперации( boolean продолжать ) throws Exception {
        ОбразРезультата Результат;
        if ( продолжать ) ПолучитьЭлемент();

        switch ( Свойства.ТекущийЭлемент ) {
            case ЭЛЕМЕНТ_КОНЕЦ:
            case ЭЛЕМЕНТ_ВЫВОД:
                return null;
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ЧИСЛО ) {
            Результат = new ОбразРезультата( Свойства.ЧислоЗначение );
            ПолучитьЭлемент();
            return Результат;
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_КЛЮЧЕВОЕ_СЛОВО ) {
            if ( Свойства.ИмяЗначение.equals( "true" ) ) {
                Результат = new ОбразРезультата( true );
                ПолучитьЭлемент();
                return Результат;
            }
            else if ( Свойства.ИмяЗначение.equals( "false" ) ) {
                Результат = new ОбразРезультата( false );
                ПолучитьЭлемент();
                return Результат;
            }
            
            throw new ИсключениеРазборщика( ОШИБКА_НЕИЗВЕСТНОЕ_КЛЮЧЕВОЕ_СЛОВО );
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ИМЯ ) {
            ОбразСвойств врм;
            String имя = Свойства.ИмяЗначение;

            врм = Свойства;
            Свойства = new ОбразСвойств( врм );
            ПолучитьЭлемент();

            if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ПРИСВОИТЬ ) {
                Свойства = врм;
                return ОсновныеОперации( true );
            }
            Свойства = врм;

            if ( Переменные.ИмяВТаблице( имя ) ) {
                int свойство = Переменные.СвойствоЭлемента( имя );
                if ( ( свойство == СВОЙСТВО_КОНСТАНТА ) || ( свойство == СВОЙСТВО_ПЕРЕМЕННАЯ ) ) {
                    ОбразРезультата знач = Переменные.ЗначениеЭлемента( имя );
                    ПолучитьЭлемент();
                    return знач;
                }
            } else {
                throw new ИсключениеРазборщика( ОШИБКА_НЕИЗВЕСТНЫЙ_ИДЕНТИФИКАТОР );                
            }
            return ОсновныеОперации( true );
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ПРИСВОИТЬ ) {
            ОбразСвойств врм;
            врм = Свойства;
            Свойства = new ОбразСвойств( врм );
            ПолучитьЭлемент();

            if ( ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ВЫВОД ) || ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_КОНЕЦ ) ) {
                throw new ИсключениеРазборщика( ОШИБКА_ОЖИДАЕТСЯ_ВЫВОД );
            }
            Свойства = врм;

            if ( Свойства.ПредыдущЭлемент == ЭЛЕМЕНТ_ИМЯ ) {
                String имя = Свойства.ИмяЗначение;
                if ( Переменные.ИмяВТаблице( имя ) ) {
                    int свойство = Переменные.СвойствоЭлемента( имя );
                    if ( свойство == СВОЙСТВО_ПЕРЕМЕННАЯ ) {
                        ОбразРезультата знач = СложениеВычитание( true );
                        Переменные.ИзменитьЭлемент( имя, свойство, знач );
                        ПолучитьЭлемент();
                        return знач;
                    }
                    throw new ИсключениеРазборщика( ОШИБКА_ИЗМЕНИТЬ_НЕЛЬЗЯ );
                } else {
                    ОбразРезультата знач = СложениеВычитание( true );
                    Переменные.ДобавитьЭлемент( имя, СВОЙСТВО_ПЕРЕМЕННАЯ, знач );
                    ПолучитьЭлемент();
                    return знач;
                }
            }
            throw new ИсключениеРазборщика( ОШИБКА_ПРИ_ПРИСВОЕНИИ );
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ТЕКСТ ) {
            Результат = new ОбразРезультата( Свойства.СтрокаЗначение );
            ПолучитьЭлемент();
            return Результат;
        }

        // Унарный минус
        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_МИНУС ) {
            return операторМИНУС( УмножениеДеление( true ) );
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ЛЕВАЯСКОБКА ) {
            if ( Свойства.ПредыдущЭлемент == ЭЛЕМЕНТ_ИМЯ ) {
                String имя = Свойства.ИмяЗначение;
                int свойство = Переменные.СвойствоЭлемента( имя );
                if ( свойство == СВОЙСТВО_ФУНКЦИЯ ) {
                    ОбразРезультата знач = Список( true );
                    if ( Свойства.ТекущийЭлемент != ЭЛЕМЕНТ_ПРАВАЯСКОБКА )
                        throw new ИсключениеРазборщика( ОШИБКА_ОЖИДАЕТСЯ_ПРАВАЯ_СКОБКА );
                    ПолучитьЭлемент();
                    return Функция( имя, знач );
                } else {
                    throw new ИсключениеРазборщика( ОШИБКА_НЕСООТВЕТСТВИЕ_ТИПА );
                }
            }
            Результат = СложениеВычитание( true );
            if ( Свойства.ТекущийЭлемент != ЭЛЕМЕНТ_ПРАВАЯСКОБКА )
                throw new ИсключениеРазборщика( ОШИБКА_ОЖИДАЕТСЯ_ПРАВАЯ_СКОБКА );
            ПолучитьЭлемент();
            return Результат;
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ЛЕВАЯКВАДРСКОБКА ) {
            ОбразРезультата знач = Список( true );
            if ( Свойства.ТекущийЭлемент != ЭЛЕМЕНТ_ПРАВАЯКВАДРСКОБКА )
                throw new ИсключениеРазборщика( ОШИБКА_ОЖИДАЕТСЯ_ПРАВАЯ_КВАДР_СКОБКА );
            ПолучитьЭлемент();
            Vector врм = ( Vector ) знач.Значение.elementAt(0);
            int строк = ( ( Integer ) знач.Размер.elementAt(0) ).intValue();
            return операторSTACK( new ОбразРезультата( строк, 1, врм ) );
        }

        return null;
    }

PM MAIL   Вверх
Vasay
Дата 6.10.2010, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



уни
Что это за бред?
Какой это нафиг русский язык программирования????    Он абсолютно английский с русскими переменными - нафиг такое, ни рыба ни мясо

Вот вам вполне сносный Русский язык программирования, кстати весьма востребованный и высокооплачиваемый

Код

Функция ПолучитьПользователяДляОтправкиЭлектронныхСообщений()
    
    #Если Сервер Тогда
        // Выполнение отправки писем фоновым заданием
        Возврат Справочники.Пользователи.ПустаяСсылка();
    #Иначе
        Возврат ПараметрыСеанса.ТекущийПользователь;
    #КонецЕсли
    
КонецФункции


Функция ЗагрузитьИзмененияДляУзлаИзФайлаОбмена(УзелОбмена, КоличествоЭлементовВТранзакцииНаЗагрузкуДанных = 0, ЧтениеXML) Экспорт
    
    ЭтотУзелОбмена = ПланыОбмена[ПолучитьИмяПланаОбмена(УзелОбмена)].ЭтотУзел();
    // Загрузка из найденного файла
    ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
    ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
    
    Если ЧтениеСообщения.Отправитель <> УзелОбмена Тогда
        // Сообщение предназначено не для этого узла
        ВызватьИсключение "Неверный узел в файле обмена данными";            
    КонецЕсли;
    
    // Удаляем регистрацию изменений для узла отправителя сообщения
    ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель, ЧтениеСообщения.НомерПринятого);
    
    // считаем сколько объектов прочитали
    КоличествоПрочитанныхОбъектов = 0;
    КоличествоЗаписанныхОбъектов = 0;
    
    // начинаем транзакцию
    НачатьТранзакцию(); 
    
    ЭтотУзелОбменаОбъект = Неопределено;
    
    Попытка
        
        // Читаем данные из сообщения
        Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл
                    
            // Читаем очередное значение
            Данные = ПрочитатьXML(ЧтениеXML);
            
            КоличествоПрочитанныхОбъектов = КоличествоПрочитанныхОбъектов + 1;
            
            Если КоличествоПрочитанныхОбъектов % 100 = 0 Тогда
                #Если Клиент Тогда
                    Состояние("Чтение изменений от узла """ + УзелОбмена.Наименование + """. Считано объектов: " + Строка(КоличествоПрочитанныхОбъектов));
                #КонецЕсли
            КонецЕсли;
                    
            // по идее какие изменения принимать а какие откатывать должен определять сам план обмена
            Если ПланыОбмена.ИзменениеЗарегистрировано(ЧтениеСообщения.Отправитель, Данные) Тогда
                        
                //Возник конфликт
                //И сами данные были изменены и в присланном файле содержится изменение этих данных
                Если ЭтотУзелОбменаОбъект = Неопределено Тогда
                    
                    ЭтотУзелОбменаОбъект = ЭтотУзелОбмена.ПолучитьОбъект();
                    
                КонецЕсли;
                
                ПрименятьИзменения = ЭтотУзелОбменаОбъект.ПрименитьИзменениеКИнформационнойБазе(ЧтениеСообщения.Отправитель, Данные); 
                Если Не ПрименятьИзменения Тогда
                    Продолжить;
                КонецЕсли;
                        
            КонецЕсли;
                    
            // Записываем перенесенные данные
            Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;
            Данные.ОбменДанными.Загрузка = Истина;
            Данные.Записать();
            
            КоличествоЗаписанныхОбъектов = КоличествоЗаписанныхОбъектов + 1;
            
            Если (КоличествоЭлементовВТранзакцииНаЗагрузкуДанных > 0)
                И (КоличествоЗаписанныхОбъектов = КоличествоЭлементовВТранзакцииНаЗагрузкуДанных) Тогда
                
                // промежуточную транзакцию закрываем и открываем новую
                ЗафиксироватьТранзакцию();
                НачатьТранзакцию();
                
                КоличествоЗаписанныхОбъектов = 0;
            КонецЕсли;
                                    
        КонецЦикла;
        
        // фиксируем все изменения которые были записаны
        ЗафиксироватьТранзакцию();    
                    
        ЧтениеСообщения.ЗакончитьЧтение();
        ЧтениеXML.Закрыть();
        
    Исключение
        
        ОтменитьТранзакцию();
        
        #Если Клиент Тогда
            ОбщегоНазначения.СообщитьОбОшибке("" + ОписаниеОшибки());
        #КонецЕсли
        
        ЧтениеXML.Закрыть();
        Возврат Ложь;
        
    КонецПопытки;
        
    Возврат Истина;
        
КонецФункции // ПрочитатьИзмененияДляУзла



Добавлено @ 18:52
Единственно,  все же хочу сказать, что английский язык удобней. Вот меня жутко добивают такие конструкции:

Для Каждого пользователь Из пользователи Цикл
....
КонецЦикла;

Все время хочется написать:
Для Каждого пользователя

Но в коде цикла придется писать:

пользователя.имя smile (это уже похоже на какое-то таджикско-узбекское наречие: насяльника.задания)


Вот на английском выглядит логичней:

For Each user In users Do .....

Это сообщение отредактировал(а) Vasay - 6.10.2010, 18:56


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
smartov
Дата 6.10.2010, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



Vasay, одинсэ?
PM MAIL   Вверх
уни
Дата 6.10.2010, 19:09 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Vasay, умник, сам ты бред. Язык программирования - это не только операторы.

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

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

Добавлено через 7 минут и 58 секунд


Это часть интерпретатора, который выполняет вот такие сценарии для конфигурирования программы:
Код

// Типовое расписание для музыкального программируемого
// школьного звонка "Школьник-3"
// Автор: Мезенцев В. Н.
// Дата создания: Чт 02.09.2010 г.
// Место: МОУ СШ №2 г.п. Излучинск Нижневартовского района

// Сделайте копию этого файла, т.к. при экспорте расписаний
// из программы комментарии исчезнут.

// [Описание]
// В файле описаны три расписания: Будни, Суббота и Пустое и один
// годовой план: "2010-2011 гг.".

// Задание от школы для составления файла расписаний:

// Пн-Пт
// 1. 8-00 8-45
// 2. 8-55 9-40
// 3. 9-55 10-40
// 4. 10-55 11-40
// 5. 12-00 12-45
// 6. 12-55 13-40
// 7. 13-50 14-35

// Сб
// 1. 8-00 8-45
// 2. 9-00 9-45
// 3. 10-00 10-45
// 4. 11-00 11-45
// 5. 11-55 12-40

// Предварительные звонки за 2 минуты до начала урока.
// Первый предварительный звонок за 5 минут до начала урока.

// ----------------------------------------------------------------

// [Константы]
// Примечание: Значения констант изменять нельзя, т.к. это приведёт
// к ошибкам при считывании файла

ЗВОНОК_СВОБОДНЫЙ = 0;
ЗВОНОК_НАЧАЛО = 1;
ЗВОНОК_ОКОНЧАНИЕ = 2;

Корень = 0;

ГРУППА_РАСПИСАНИЕ = 2;
ГРУППА_УРОК = 3;

// [Вспомогательные переменные]
// Ими можно пользоваться при ручном составлении расписания.
// Сокращение записи ускоряет загрузку файла.

Путь1 = "file:///root1/Мелодии/[Короткая] Время.mp3";
Путь2 = "file:///root1/Мелодии/Гостья из XXI.mp3";
Путь3 = "file:///root1/Мелодии/Гостья из XXI.mp3";

// [Расписания]

// Для добавления расписания нужно сделать запись вида:

// ид_расписания = ДобавитьГруппу( 0, 2, "имя_расписания" );

// ид_расписания - это вспомогательная переменная, которая используется
// только при считывании файла программой;
// имя_расписания - эта строка используется в программе для работы с расписанием.
// ид_расписания и имя_расписания не обязательно должны совпадать;
// 0 - это идентификатор родителя группы;
// 2 - это идентификатор группы-расписания.

Будни = ДобавитьГруппу( Корень, ГРУППА_РАСПИСАНИЕ, "Будни" );
Суббота = ДобавитьГруппу( Корень, ГРУППА_РАСПИСАНИЕ, "Суббота" );
Пустое = ДобавитьГруппу( Корень, ГРУППА_РАСПИСАНИЕ, "Пустое" );

// [Уроки]

// Для добавления урока нужно сделать запись вида:

// ид_урока = ДобавитьГруппу( ид_расписания, 3, "имя_урока" );

// ид_урока - это вспомогательная переменная, которая используется
// только при считывании файла программой;
// ид_расписания - идентификатор расписания, полученный при добавлении
// расписания выше;
// имя_урока - эта строка используется в программе для работы с уроком;
// ид_урока и имя_урока не обязательно должны совпадать;
// 3 - это идентификатор группы-урока.

Будни.Урок1 = ДобавитьГруппу( Будни, ГРУППА_УРОК, "Урок1" );
Будни.Урок2 = ДобавитьГруппу( Будни, ГРУППА_УРОК, "Урок2" );
Будни.Урок3 = ДобавитьГруппу( Будни, ГРУППА_УРОК, "Урок3" );
Будни.Урок4 = ДобавитьГруппу( Будни, ГРУППА_УРОК, "Урок4" );
Будни.Урок5 = ДобавитьГруппу( Будни, ГРУППА_УРОК, "Урок5" );
Будни.Урок6 = ДобавитьГруппу( Будни, ГРУППА_УРОК, "Урок6" );
Будни.Урок7 = ДобавитьГруппу( Будни, ГРУППА_УРОК, "Урок7" );

Суббота.Урок1 = ДобавитьГруппу( Суббота, ГРУППА_УРОК, "Урок1" );
Суббота.Урок2 = ДобавитьГруппу( Суббота, ГРУППА_УРОК, "Урок2" );
Суббота.Урок3 = ДобавитьГруппу( Суббота, ГРУППА_УРОК, "Урок3" );
Суббота.Урок4 = ДобавитьГруппу( Суббота, ГРУППА_УРОК, "Урок4" );
Суббота.Урок5 = ДобавитьГруппу( Суббота, ГРУППА_УРОК, "Урок5" );

// [Звонки]

// Для добавления урока нужно сделать запись вида:

// ид_звонка = ДобавитьЗвонок( ид_урока, час, минута, тип, путь1 , путь2 );
// или
// ДобавитьЗвонок( ид_урока, час, минута, тип, путь1 , путь2 );

// ид_урока - идентификатор урока, полученный при добавлении урока выше;
// час, минута - время звонка;
// тип - тип звонка: свободный, начало и конец. Тип звонка влияет на отображение
// информации в режиме монитора;
// путь1, путь2 - пути к аудио-файлам для основного и предварительного
// звонков соответственно. Время предварительного звонка задаётся в настройках
// программы для начальных и оконечных звонков относительно их времени.

ДобавитьЗвонок( Будни.Урок1, 7, 55, ЗВОНОК_СВОБОДНЫЙ, Путь1, "" );

ДобавитьЗвонок( Будни.Урок1, 8, 0, ЗВОНОК_НАЧАЛО, Путь2, "" );
ДобавитьЗвонок( Будни.Урок1, 8, 45, ЗВОНОК_ОКОНЧАНИЕ, Путь3, Путь1 );

ДобавитьЗвонок( Будни.Урок2, 8, 55, ЗВОНОК_НАЧАЛО, Путь2, Путь1 );
ДобавитьЗвонок( Будни.Урок2, 9, 40, ЗВОНОК_ОКОНЧАНИЕ, Путь3, Путь1 );

ДобавитьЗвонок( Будни.Урок3, 9, 55, ЗВОНОК_НАЧАЛО, Путь2, Путь1 );
ДобавитьЗвонок( Будни.Урок3, 10, 40, ЗВОНОК_ОКОНЧАНИЕ, Путь3, Путь1 );

ДобавитьЗвонок( Будни.Урок4, 10, 55, ЗВОНОК_НАЧАЛО, Путь2, Путь1 );
ДобавитьЗвонок( Будни.Урок4, 11, 40, ЗВОНОК_ОКОНЧАНИЕ, Путь3, Путь1 );

ДобавитьЗвонок( Будни.Урок5, 12, 0, ЗВОНОК_НАЧАЛО, Путь2, Путь1 );
ДобавитьЗвонок( Будни.Урок5, 12, 45, ЗВОНОК_ОКОНЧАНИЕ, Путь3, Путь1 );

ДобавитьЗвонок( Будни.Урок6, 12, 55, ЗВОНОК_НАЧАЛО, Путь2, Путь1 );
ДобавитьЗвонок( Будни.Урок6, 13, 40, ЗВОНОК_ОКОНЧАНИЕ, Путь3, Путь1 );

ДобавитьЗвонок( Будни.Урок7, 13, 50, ЗВОНОК_НАЧАЛО, Путь2, Путь1 );
ДобавитьЗвонок( Будни.Урок7, 14, 35, ЗВОНОК_ОКОНЧАНИЕ, Путь3, Путь1 );

ДобавитьЗвонок( Суббота.Урок1, 7, 55, ЗВОНОК_СВОБОДНЫЙ, Путь1, "" );

ДобавитьЗвонок( Суббота.Урок1, 8, 0, ЗВОНОК_НАЧАЛО, Путь2, "" );
ДобавитьЗвонок( Суббота.Урок1, 8, 45, ЗВОНОК_ОКОНЧАНИЕ, Путь3, Путь1 );

ДобавитьЗвонок( Суббота.Урок2, 9, 0, ЗВОНОК_НАЧАЛО, Путь2, Путь1 );
ДобавитьЗвонок( Суббота.Урок2, 9, 45, ЗВОНОК_ОКОНЧАНИЕ, Путь3, Путь1 );

ДобавитьЗвонок( Суббота.Урок3, 10, 0, ЗВОНОК_НАЧАЛО, Путь2, Путь1 );
ДобавитьЗвонок( Суббота.Урок3, 10, 45, ЗВОНОК_ОКОНЧАНИЕ, Путь3, Путь1 );

ДобавитьЗвонок( Суббота.Урок4, 11, 0, ЗВОНОК_НАЧАЛО, Путь2, Путь1 );
ДобавитьЗвонок( Суббота.Урок4, 11, 45, ЗВОНОК_ОКОНЧАНИЕ, Путь3, Путь1 );

ДобавитьЗвонок( Суббота.Урок5, 11, 55, ЗВОНОК_НАЧАЛО, Путь2, Путь1 );
ДобавитьЗвонок( Суббота.Урок5, 12, 40, ЗВОНОК_ОКОНЧАНИЕ, Путь3, Путь1 );

// [Планы]

// Примечание: При составлении годового плана обязательно должно быть определено
// хотя бы одно расписание.

// [Вспомогательные переменные]
// Ими можно пользоваться при ручном составлении расписания.
// Сокращение записи ускоряет загрузку файла.

Р1 = Будни;
Р2 = Суббота;
Р3 = Пустое;

// Матрицы годовых планов создаются автоматизировано при помощи Планировщика,
// который входит в состав программы. Матрица имеет размер 12x31, т.е.
// 12 месяцев (строк) по 31 дню (столбцов). Каждый элемент матрицы является
// идентификатором расписания, которое было задано выше в файле.

ОсновнойПлан =
[
[Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1],
[Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р3,Р3,Р3],
[Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1],
[Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3],
[Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1],
[Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р3],
[Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3],
[Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р3],
[Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1,Р2,Р3,Р1,Р1,Р1,Р1,Р1]
];

ДополнительныйПлан =
[
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3],
[Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3,Р3]
];

ДобавитьПлан( "2010-2011 гг.", ОсновнойПлан, ДополнительныйПлан );



Vasay, как ты думаешь, тот кто пишет почти на русском лексический анализатор для русской грамматики, он чего-нить смыслит в ТЕМЕ? А? smile
PM MAIL   Вверх
Vasay
Дата 6.10.2010, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(smartov @  6.10.2010,  19:04 Найти цитируемый пост)
Vasay, одинсэ?


 smile 


уни
Цитата(уни @  6.10.2010,  19:09 Найти цитируемый пост)
Vasay, умник, сам ты бред



А как назвать еще такой код:  return Текст.charAt( (int) ++Свойства.Позиция );

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

Добавлено через 4 минуты и 47 секунд
Цитата

1С - это внутренний рынок, поэтому правильно они выбрали русский язык. 


1с, кстати, двуязычен. Так что сама платформа готова к покорению буржуйских просторов ;-)


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
уни
Дата 6.10.2010, 19:32 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

ЭТО ТВОЁ личное мнение, забыл дописать smile

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

Дочитай до конца, если не понял. Потом перечитай и посмотри на МОЮ документацию по МОЕМУ языку в комментариях. Это внутренний рынок и моя квалификация позволяет мне не нагружать моих пользователей английским языком:
http://rapidshare.com/files/417645443/Scho...l_ver._0.5.8.7z

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


Это сообщение отредактировал(а) уни - 6.10.2010, 19:36
PM MAIL   Вверх
уни
Дата 6.10.2010, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



И не сомневайтесь в моей квалификации smile
user posted image
PM MAIL   Вверх
Vasay
Дата 6.10.2010, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата

Дочитай до конца, если не понял. Потом перечитай и посмотри на МОЮ документацию по МОЕМУ языку в комментариях. Это внутренний рынок и моя квалификация позволяет мне не нагружать моих пользователей английским языком:


а это что такое (из вашего поста ):

Код

 public char Символ() {
        if ( Свойства.Позиция >= ( Свойства.Размер - 1 ) )
            return ' ';
        return Текст.charAt( (int) ++Свойства.Позиция );
    }

    public int ПолучитьЭлемент() throws Exception {
        char Литера;

        do {
            if ( Свойства.Позиция >= ( Свойства.Размер - 1 ) ) {
                Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
                return Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_КОНЕЦ;
            }
            Литера = Символ();
        } while ( ( Литера == ' ' )
                || ( Литера == '\t' )
                || ( Литера == '\r' )
                || ( Литера == '\n' ) );

        // Множество управляющих символов
        if ( Литера == ';' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
//            if ( Свойства.Позиция >= ( Свойства.Размер - 1 ) ) {
//                return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_КОНЕЦ );
//            }
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ВЫВОД );
        }
        // Множество операций
        else if ( Литера == '*' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_УМНОЖИТЬ );
        }
        else if ( Литера == '/' ) {
            long врм = Свойства.Позиция;

            Литера = Символ();
            // Пропуск строчного комментария
            if ( Литера == '/' ) {
                do {
                    if ( Свойства.Позиция >= ( Свойства.Размер - 1 ) ) {
                        Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
                        return Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_КОНЕЦ;
                    }
                    Литера = Символ();
                } while ( !( ( Литера == '\r' ) || ( Литера == '\n' ) ) );

                return ПолучитьЭлемент();
            } else {
                Свойства.Позиция = врм;
            }

            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ДЕЛИТЬ );
        }
        else if ( Литера == '+' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ПЛЮС );
        }
        else if ( Литера == '-' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_МИНУС );
        }
        else if ( Литера == '^' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_СТЕПЕНЬ );
        }
        else if ( Литера == '!' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ФАКТОРИАЛ );
        }
        else if ( Литера == '(' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ЛЕВАЯСКОБКА );
        }
        else if ( Литера == '[' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ЛЕВАЯКВАДРСКОБКА );
        }
        else if ( Литера == ']' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ПРАВАЯКВАДРСКОБКА );
        }
        else if ( Литера == ')' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ПРАВАЯСКОБКА );
        }
        else if ( Литера == '=' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ПРИСВОИТЬ );
        }
        else if ( Литера == ',' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ЗАПЯТАЯ );
        }

        // Строка текста, заключённая в кавычки
        else if ( Литера == '"' ) {
            Свойства.СтрокаЗначение = "";
            Литера = Символ();
            while ( Литера != '"' ) {
                Свойства.СтрокаЗначение += Литера;
                Литера = Символ();
            }
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ТЕКСТ );
        }

        // Множество целых чисел
        else if ( ( Литера >= '0' ) && ( Литера <= '9' ) ) {
            String Число = "" + Литера;
            Литера = Символ();

            while ( ( ( Литера >= '0' ) && ( Литера <= '9' ) ) ) {
                Число += Литера;
                Литера = Символ();
            }

            Свойства.ЧислоЗначение = Integer.parseInt( Число );
            Свойства.Позиция--; // возвращаем позицию на предыдущий символ
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ЧИСЛО );
        }

        // Множество имён
        else if ( ( ( Литера >= 'a' ) && ( Литера <= 'z' ) ) 
                || ( ( Литера >= 'A' ) && ( Литера <= 'Z' ) )
                || ( ( Литера >= 'А' ) && ( Литера <= 'я' ) )
                || ( Литера == 'Ё' )
                || ( Литера == 'ё' )
                || ( Литера == '_' )
                ) {
            Свойства.ИмяЗначение = "" + Литера;
            Литера = Символ();

            while ( ( ( Литера >= 'a' ) && ( Литера <= 'z' ) ) 
                    || ( ( Литера >= 'A' ) && ( Литера <= 'Z' ) )
                    || ( ( Литера >= 'А' ) && ( Литера <= 'я' ) )
                    || ( Литера == 'Ё' )
                    || ( Литера == 'ё' )
                    || ( ( Литера >= '0' ) && ( Литера <= '9' ) )
                    || ( Литера == '.' )
                    || ( Литера == '_' )
                    ) {
                Свойства.ИмяЗначение += Литера;
                Литера = Символ();
            }
            Свойства.Позиция--; // возвращаем позицию на предыдущий символ
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            
            // Ключевые слова
            if ( ( Свойства.ИмяЗначение.equals( "true" )
                    || ( Свойства.ИмяЗначение.equals( "false" ) )
                    ) ) {
                return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_КЛЮЧЕВОЕ_СЛОВО );               
            }

            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ИМЯ );
        }

        throw new ИсключениеРазборщика( ОШИБКА_НЕИЗВЕСТНЫЙ_СИМВОЛ );
    }

    public ОбразРезультата ОсновныеОперации( boolean продолжать ) throws Exception {
        ОбразРезультата Результат;
        if ( продолжать ) ПолучитьЭлемент();

        switch ( Свойства.ТекущийЭлемент ) {
            case ЭЛЕМЕНТ_КОНЕЦ:
            case ЭЛЕМЕНТ_ВЫВОД:
                return null;
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ЧИСЛО ) {
            Результат = new ОбразРезультата( Свойства.ЧислоЗначение );
            ПолучитьЭлемент();
            return Результат;
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_КЛЮЧЕВОЕ_СЛОВО ) {
            if ( Свойства.ИмяЗначение.equals( "true" ) ) {
                Результат = new ОбразРезультата( true );
                ПолучитьЭлемент();
                return Результат;
            }
            else if ( Свойства.ИмяЗначение.equals( "false" ) ) {
                Результат = new ОбразРезультата( false );
                ПолучитьЭлемент();
                return Результат;
            }
            
            throw new ИсключениеРазборщика( ОШИБКА_НЕИЗВЕСТНОЕ_КЛЮЧЕВОЕ_СЛОВО );
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ИМЯ ) {
            ОбразСвойств врм;
            String имя = Свойства.ИмяЗначение;

            врм = Свойства;
            Свойства = new ОбразСвойств( врм );
            ПолучитьЭлемент();

            if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ПРИСВОИТЬ ) {
                Свойства = врм;
                return ОсновныеОперации( true );
            }
            Свойства = врм;

            if ( Переменные.ИмяВТаблице( имя ) ) {
                int свойство = Переменные.СвойствоЭлемента( имя );
                if ( ( свойство == СВОЙСТВО_КОНСТАНТА ) || ( свойство == СВОЙСТВО_ПЕРЕМЕННАЯ ) ) {
                    ОбразРезультата знач = Переменные.ЗначениеЭлемента( имя );
                    ПолучитьЭлемент();
                    return знач;
                }
            } else {
                throw new ИсключениеРазборщика( ОШИБКА_НЕИЗВЕСТНЫЙ_ИДЕНТИФИКАТОР );                
            }
            return ОсновныеОперации( true );
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ПРИСВОИТЬ ) {
            ОбразСвойств врм;
            врм = Свойства;
            Свойства = new ОбразСвойств( врм );
            ПолучитьЭлемент();

            if ( ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ВЫВОД ) || ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_КОНЕЦ ) ) {
                throw new ИсключениеРазборщика( ОШИБКА_ОЖИДАЕТСЯ_ВЫВОД );
            }
            Свойства = врм;

            if ( Свойства.ПредыдущЭлемент == ЭЛЕМЕНТ_ИМЯ ) {
                String имя = Свойства.ИмяЗначение;
                if ( Переменные.ИмяВТаблице( имя ) ) {
                    int свойство = Переменные.СвойствоЭлемента( имя );
                    if ( свойство == СВОЙСТВО_ПЕРЕМЕННАЯ ) {
                        ОбразРезультата знач = СложениеВычитание( true );
                        Переменные.ИзменитьЭлемент( имя, свойство, знач );
                        ПолучитьЭлемент();
                        return знач;
                    }
                    throw new ИсключениеРазборщика( ОШИБКА_ИЗМЕНИТЬ_НЕЛЬЗЯ );
                } else {
                    ОбразРезультата знач = СложениеВычитание( true );
                    Переменные.ДобавитьЭлемент( имя, СВОЙСТВО_ПЕРЕМЕННАЯ, знач );
                    ПолучитьЭлемент();
                    return знач;
                }
            }
            throw new ИсключениеРазборщика( ОШИБКА_ПРИ_ПРИСВОЕНИИ );
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ТЕКСТ ) {
            Результат = new ОбразРезультата( Свойства.СтрокаЗначение );
            ПолучитьЭлемент();
            return Результат;
        }

        // Унарный минус
        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_МИНУС ) {
            return операторМИНУС( УмножениеДеление( true ) );
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ЛЕВАЯСКОБКА ) {
            if ( Свойства.ПредыдущЭлемент == ЭЛЕМЕНТ_ИМЯ ) {
                String имя = Свойства.ИмяЗначение;
                int свойство = Переменные.СвойствоЭлемента( имя );
                if ( свойство == СВОЙСТВО_ФУНКЦИЯ ) {
                    ОбразРезультата знач = Список( true );
                    if ( Свойства.ТекущийЭлемент != ЭЛЕМЕНТ_ПРАВАЯСКОБКА )
                        throw new ИсключениеРазборщика( ОШИБКА_ОЖИДАЕТСЯ_ПРАВАЯ_СКОБКА );
                    ПолучитьЭлемент();
                    return Функция( имя, знач );
                } else {
                    throw new ИсключениеРазборщика( ОШИБКА_НЕСООТВЕТСТВИЕ_ТИПА );
                }
            }
            Результат = СложениеВычитание( true );
            if ( Свойства.ТекущийЭлемент != ЭЛЕМЕНТ_ПРАВАЯСКОБКА )
                throw new ИсключениеРазборщика( ОШИБКА_ОЖИДАЕТСЯ_ПРАВАЯ_СКОБКА );
            ПолучитьЭлемент();
            return Результат;
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ЛЕВАЯКВАДРСКОБКА ) {
            ОбразРезультата знач = Список( true );
            if ( Свойства.ТекущийЭлемент != ЭЛЕМЕНТ_ПРАВАЯКВАДРСКОБКА )
                throw new ИсключениеРазборщика( ОШИБКА_ОЖИДАЕТСЯ_ПРАВАЯ_КВАДР_СКОБКА );
            ПолучитьЭлемент();
            Vector врм = ( Vector ) знач.Значение.elementAt(0);
            int строк = ( ( Integer ) знач.Размер.elementAt(0) ).intValue();
            return операторSTACK( new ОбразРезультата( строк, 1, врм ) );
        }

        return null;
    }



Я ничего не имею против полностью русского языка программирования, но Java с русскими переменными - бред. 


Это сообщение отредактировал(а) Vasay - 6.10.2010, 19:52


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
уни
Дата 6.10.2010, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



"Java с русскими переменными - бред. "

Скажите это тем, кто ввёл ключ компилятора encoding для входных файлов и изобретателям уникода:
Код

[C:\Program Files\Java\jdk1.6.0_18\bin]$ javac.exe
Usage: javac <options> <source files>
where possible options include:
  -g                         Generate all debugging info
  -g:none                    Generate no debugging info
  -g:{lines,vars,source}     Generate only some debugging info
  -nowarn                    Generate no warnings
  -verbose                   Output messages about what the compiler is doing
  -deprecation               Output source locations where deprecated APIs are used
  -classpath <path>          Specify where to find user class files and annotation processors
  -cp <path>                 Specify where to find user class files and annotation processors
  -sourcepath <path>         Specify where to find input source files
  -bootclasspath <path>      Override location of bootstrap class files
  -extdirs <dirs>            Override location of installed extensions
  -endorseddirs <dirs>       Override location of endorsed standards path
  -proc:{none,only}          Control whether annotation processing and/or compilation is done.
  -processor <class1>[,<class2>,<class3>...]Names of the annotation processors to run; bypasses default discovery process
  -processorpath <path>      Specify where to find annotation processors
  -d <directory>             Specify where to place generated class files
  -s <directory>             Specify where to place generated source files
  -implicit:{none,class}     Specify whether or not to generate class files for implicitly referenced files
  -encoding <encoding>       Specify character encoding used by source files
  -source <release>          Provide source compatibility with specified release
  -target <release>          Generate class files for specific VM version
  -version                   Version information
  -help                      Print a synopsis of standard options
  -Akey[=value]              Options to pass to annotation processors
  -X                         Print a synopsis of nonstandard options
  -J<flag>                   Pass <flag> directly to the runtime system


Добавлено через 12 минут и 36 секунд
Только не надо думать, что ява одна такая smile

Вот пример такой русификации для C# (мои эксперименты). Это для КПК код, не пугайтесь:
Код

using System;

using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Threading;
using HANDLE = System.IntPtr;

namespace SchollBell {
    public partial class ФормаМеню: Form {
        const bool РЕЖИМ_СИМУЛЯТОРА = true;

        const byte ЭЛЕМЕНТ_МОНИТОР = 0;
        const byte ЭЛЕМЕНТ_НАСТРОЙКИ = 1;
        const byte ЭЛЕМЕНТ_ПЛАНЫ = 2;
        const byte ЭЛЕМЕНТ_РАСПИСАНИЯ = 3;
        const byte ЭЛЕМЕНТ_ПРОВОДНИК = 4;
        const byte ЭЛЕМЕНТ_ОПРОГРАММЕ = 5;

        const UInt32 INFINITE = 0xFFFFFFFF;
        const UInt32 WAIT_ABANDONED = 0x00000080;
        const UInt32 WAIT_OBJECT_0 = 0x00000000;
        const UInt32 WAIT_TIMEOUT = 0x00000102;

        //@flag CNT_EVENT  | System event notification
        const byte CNT_EVENT = 1;     
        //@flag CNT_TIME   | Time-based notification
        const byte CNT_TIME = 2;           
        //@flag CNT_PERIOD | Time-based notification is active for
        // time period between stStart and stEnd
        const byte CNT_PERIOD = 3;              
        //@flag CNT_CLASSICTIME | equivalent to using (obsolete)
        // CeSetUserNotification function - standard command line is
        // supplied. lpszArguments must be NULL
        const byte CNT_CLASSICTIME = 4;

        const string ТЕКСТ_ПРЕФИКСА_ИМЕНОВАННОГО_СОБЫТИЯ = "\\\\.\\Notifications\\NamedEvents\\";

        private static Thread ПотокОжиданияСобытия;
        private static HANDLE Событие;
        private static IntPtr Уведомление;

        // Описание обёрток API функций операционной системы
        [ DllImport( "coredll.dll", SetLastError = true, EntryPoint = "CreateEvent", 
            CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Auto ) ]
        public static extern HANDLE СоздатьСобытие( HANDLE Атрибуты, 
            [In, MarshalAs( UnmanagedType.Bool ) ] bool СбросВручную, 
            [In, MarshalAs( UnmanagedType.Bool ) ] bool НачальноеСостояние, 
            [In, MarshalAs( UnmanagedType.BStr ) ] string Имя
            );

        [ DllImport( "coredll.dll", EntryPoint = "CeRunAppAtTime", SetLastError = true ) ]   
        private static extern bool CeRunAppAtTime( string ИмяПриложения, byte[] Время );

        [ DllImport( "coredll.dll", EntryPoint = "CeSetUserNotification", SetLastError = true ) ]
        private static extern int УстановПользовУведомление( int Уведомление, 
            string ИмяПриложения, byte[] Время, byte[] ПользовУведомление );

        [DllImport("coredll.dll", EntryPoint = "CeClearUserNotification", SetLastError = true)]
        private static extern bool СнятьПользовУведомление( int Уведомление );

        [ DllImport( "coredll.dll", EntryPoint = "CeSetUserNotificationEx", SetLastError = true ) ]
        private static extern IntPtr УстановРасшПользовУведомление( IntPtr Уведомление, 
            CE_NOTIFICATION_TRIGGER ТриггерУведомления, CE_USER_NOTIFICATION ПользовУведомление );

        [ DllImport( "coredll.dll", EntryPoint = "WaitForSingleObject", SetLastError = true ) ]
        private static extern UInt32 WaitForSingleObject( IntPtr Описатель, UInt32 Миллисек );

        public ФормаМеню() {
            InitializeComponent();
        }

        public static void ОжиданиеСобытия() {
            while ( true ) {
                // waiting for activity signal, will block the thread, works globally.
                if ( WaitForSingleObject( Событие, INFINITE ) == WAIT_OBJECT_0 ) {
                    MessageBox.Show( "Сработало!!!" );
                    break;
                } else {
                    MessageBox.Show( "Время вышло" );
                    break;
                }
                
                Thread.Sleep( 5000 );
            }
        }

        // Запуск движка таймеров
        public void Запуск() {
            string ИмяПриложения = ТЕКСТ_ПРЕФИКСА_ИМЕНОВАННОГО_СОБЫТИЯ + "MyTestEvent";
            string Параметры = "";

            System.DateTime ВремяЗапуска = System.DateTime.Now.AddSeconds( 60 );

            CE_NOTIFICATION_TRIGGER Триггер = new CE_NOTIFICATION_TRIGGER();
            Триггер.Размер = ( UInt32 ) Marshal.SizeOf( typeof( CE_NOTIFICATION_TRIGGER ) );
            Триггер.Тип = CNT_TIME;
            Триггер.ИмяПриложения = ИмяПриложения;
            Триггер.Параметры = Параметры;
            Триггер.Событие = 0;
            Триггер.ВремяНачала = new SYSTEMTIME( ВремяЗапуска );
            Триггер.ВремяОкончания = new SYSTEMTIME();

            // Создаём событие
            Событие = СоздатьСобытие( HANDLE.Zero, false, false, "MyTestEvent" );

            // Если событие создано, то устанавливаем уведомление
            if ( Событие != IntPtr.Zero ) {
                Уведомление = УстановРасшПользовУведомление( IntPtr.Zero, Триггер, null ); 
                ПотокОжиданияСобытия.Start();
            }
        }

        private void Меню_KeyPress( object Отправитель, KeyPressEventArgs ПарамСобытияНажатКлавиши ) {
            switch ( ( Отправитель as ListBox ).SelectedIndex ) {
                case ЭЛЕМЕНТ_МОНИТОР:
                    Запуск();
                    break;

                case ЭЛЕМЕНТ_НАСТРОЙКИ:
                    break;

                case ЭЛЕМЕНТ_ПЛАНЫ:
                    break;

                case ЭЛЕМЕНТ_РАСПИСАНИЯ:
                    break;

                case ЭЛЕМЕНТ_ПРОВОДНИК:
                    break;

                case ЭЛЕМЕНТ_ОПРОГРАММЕ:
                    break;
            }
        }

        private void ФормаМеню_Load( object Отправитель, EventArgs ПараметрыСобытия ) {
            if ( РЕЖИМ_СИМУЛЯТОРА == true ) {
                Text = "Школьник-3 [симулятор]";
            } else {
                Text = "Школьник-3";
            }
            
            Меню.Items.Add( "Монитор" );
            Меню.Items.Add( "Настройки" );
            Меню.Items.Add( "Планы" );
            Меню.Items.Add( "Расписания" );
            Меню.Items.Add( "Проводник" );
            Меню.Items.Add( "О программе" );

            ПотокОжиданияСобытия = new Thread(new ThreadStart( ОжиданиеСобытия ) );
        }

        private void КомандаВыход_Click( object Отправитель, EventArgs ПараметрыСобытия ) {
            Close();
        }
    }
    
    [ StructLayout( LayoutKind.Sequential ) ]
    
    public struct SYSTEMTIME {
        [ MarshalAs( UnmanagedType.U2 ) ] public short Год;
        [ MarshalAs( UnmanagedType.U2 ) ] public short Месяц;
        [ MarshalAs( UnmanagedType.U2 ) ] public short ДеньНедели;
        [ MarshalAs( UnmanagedType.U2 ) ] public short Число;
        [ MarshalAs( UnmanagedType.U2 ) ] public short Часы;
        [ MarshalAs( UnmanagedType.U2 ) ] public short Минуты;
        [ MarshalAs( UnmanagedType.U2 ) ] public short Секунды;
        [ MarshalAs( UnmanagedType.U2 ) ] public short Миллисек;

        public SYSTEMTIME( DateTime Календарь ) {
            Календарь = Календарь.ToUniversalTime();  // SetSystemTime expects the SYSTEMTIME in UTC
            
            Год = ( short ) Календарь.Year;
            Месяц = ( short ) Календарь.Month;
            ДеньНедели = ( short ) Календарь.DayOfWeek;
            Число = ( short ) Календарь.Day;
            Часы = ( short ) Календарь.Hour;
            Минуты = ( short ) Календарь.Minute;
            Секунды = ( short ) Календарь.Second;
            Миллисек = ( short ) Календарь.Millisecond;
        }
    }

    public class CE_NOTIFICATION_TRIGGER {
        public UInt32 Размер = 0;
        public UInt32 Тип = 0;
        public UInt32 Событие = 0;
        [ MarshalAs( UnmanagedType.LPWStr ) ]
        public string ИмяПриложения;
        [ MarshalAs( UnmanagedType.LPWStr ) ]
        public string Параметры;
        public SYSTEMTIME ВремяНачала;
        public SYSTEMTIME ВремяОкончания;
    }

    public class CE_USER_NOTIFICATION {
        public UInt32 ФлагиДействия;
        [ MarshalAs( UnmanagedType.LPWStr ) ]
        public string ЗаголовокДиалога;
        [ MarshalAs( UnmanagedType.LPWStr ) ]
        public string ТекстДиалога;
        [ MarshalAs( UnmanagedType.LPWStr ) ]
        public string Звук;
        public UInt32 МаксГромкость;
        public UInt32 Резерв;
    }
}

PM MAIL   Вверх
bems
Дата 6.10.2010, 20:16 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



уни, Сталин бы расстрелял, да, но без него и отставания в отрасли не было бы.
А про бред это объективная реальность.

Добавлено через 2 минуты и 9 секунд
уни, 72 часа. Сила, да smile)

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


--------------------
Обижено школьников: 8
PM MAIL   Вверх
уни
Дата 6.10.2010, 20:36 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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

"И да, переводом в уме занимаются только люди, пытающиеся программировать первый месяц."
Это не правда. Большинство программистов занимаются переводами постоянно. Переводами с русского на английский. Если вы работаете в русской фирме, то ТЗ вам выдаётся на русском.

Могу вам показать что это означает. Я полиглот в смысле языков программирования. Когда-то мне нужно было по заказу написать программу для компании Роспайп для гидравлического расчета и статического расчёта труб. Я тогда ещё не мог написать интерпретатора (сэкономил бы кучу времени и нервов). Так вот, все термины и расчёты нужно делать по нашим ГОСТам, а там всё на русском.

Вот результат программинга, если вы такой знаток английского, то попробуйте с ходу найти эквивалент терминам области на английском языке без подсматривания в словарь smile А потом уж и комменте тут по поводу "бреда":
Код

  TCalcVariables = class(TObject)
  public                                                        
// --= / [ Начало списка параметров] / =--
// --= / [ Общие параметры ] / =--
    MinerDiameter                                  : TVariable; // Dвнутр - Внутренний диаметр трубопровода
    ExternalDiameter                               : TVariable; // Dнаруж - Наружный диаметр трубопровода

// --= / [ Параметры статического расчёта ] / =--
    ShellDepth                                     : TVariable; // s      - Толщина оболочки
    CorrugationWidth                               : TVariable; // Lв     - Ширина гофра
    CorrugationStep                                : TVariable; // Lш     - Шаг гофра
    PipelineDepthFilling                           : TVariable; // Hтр    - Глубина засыпки трубопровода, считается от поверхности земли до уровня горизонтального диаметра
    ShortlivedElongationModulusOnPipelineEndLife   : TVariable; // Eo     - Кратковременный модуль упругости при растяжении материала трубы на конец срока службы эксплуатации трубопровода
    LongtimeElongationModulusOnPipelineEndLife     : TVariable; // Etau   - Долговременный модуль упругости при растяжении материала трубы на конец срока службы эксплуатации трубопровода
    PoissonConstantTubeStuff                       : TVariable; // Mu     - Коэффициент Пуассона материала трубы, приводится в норматив-ной документации
    ShortlivedStrengthAtTubeStuffStretching        : TVariable; // Sigmao - Кратковременная расчётная прочность при растяжении материала трубы
    SoilSpecificWeigth                             : TVariable; // Gamma  - Удельный вес грунта
    SoilDeformationModuleInTrenchSinuses           : TVariable; // Eгр    - Модуль деформации грунта в пазухах траншеи
    WeigthOnOneAxis                                : TVariable; // m      - Масса в тоннах на одну ось
    WheelLeanArea                                  : TVariable; // F      - Площадь опирания колеса
    InternalWaterPressureInPipeline                : TVariable; // P      - Перевод массы транспорта в давление на поверхности грунта
    GroundWaterLevelAltitude                       : TVariable; // Hв     - Высота грунтовых вод
    StrengthCondition                              : TVariable; //        - Условие прочности
    PipelineMaterial                               : TVariable; //        - Материал трубопровода
    PipelineMaterialMark                           : TVariable; //        - Марка материала трубопровода
    SoilType                                       : TVariable; //        - Тип грунта засыпки
    CorrugationHeight                              : TVariable; // e      - Высота гофра "e"
    GravityCenterYCoordinate                       : TVariable; // y      - Координата y центра тяжести
    TubeAreaSecondMoment                           : TVariable; // I      - Момент инерции поперечного сечения кольца относительно центральной оси
    RingCrossSectionArea                           : TVariable; // A      - Площадь поперечного сечения кольца
    ConditionalDiameter                            : TVariable; // D      - Диаметр окружной центральной линии кольца
    GeneralExternalVerticalLoading                 : TVariable; // qc     - Суммарная внешняя вертикальная нагрузка
    ShortlivedRingtypeShellRigidity                : TVariable; // Go     - Кратковременная кольцевая жесткость оболочки трубы
    RLSVDTGroundLoad                               : TVariable; // Psi_гр - Относительное укорочение вертикального диаметра трубы под действием грунтовой нагрузки
    RLSVDTTransportLoads                           : TVariable; // Psi_Т  - Относительное укорочение вертикального диаметра трубы под действием транспортных нагрузок
    RLSVDTWarehouseing                             : TVariable; // Psi_М  - Относительное укорочение вертикального диаметра трубы, образовавшееся в процессе складирования, транспортировки и монтажа
    GeneralRLSVDTInSoil                            : TVariable; // Psi    - Суммарное относительное укорочение вертикального диаметра трубы в грунте
    MaxRatingDeformationWallStuff                  : TVariable; // Eps_p  - Максимальное значение деформации материала в стенке трубы из-за овальности поперечного сечения трубы под действием грунтов и транспортных нагрузок
    CompressionRatioWallStuff                      : TVariable; // Eps_c  - Степень сжатия материала стенки трубы от воздействия внешних нагрузок на трубопровод
    MVTDSWStressRrelaxations                       : TVariable; // Eps_pp - Предельно допустимое значение деформации растяжения материала в стенке трубы, происходящей в условиях релаксаций напряжений
    MVTDSWTCreep                                   : TVariable; // Eps_pn - Предельно допустимая деформация растяжения материала в стенке трубы в условиях ползучести
    GroundLoad                                     : TVariable; // qгр    - Грунтовая нагрузка
    TransportLoad                                  : TVariable; // qt     - Транспортная нагрузка, принимаемая по справочным данным для гусеничного, колёсного и другого вида транспорта
    GroundwatersExternalPressure                   : TVariable; // Qгв    - внешнее давление грунтовых вод на уровне горизонтального диаметра трубы
    GeneralExternalPressureOnTube                  : TVariable; // qвш    - суммарное внешнее давление на трубу
    ExtPressureFromStabilityCondWithTransportLoad  : TVariable; // qвш    - суммарное внешнее давление на трубу при учёте транспортной нагрузки
    ExternalPressureFromStabilityCondition         : TVariable; // qуст   - допускаемое значение внешнего давления из условия устойчивости
    DepthLocationFactor                            : TVariable; // n      - Коэффициент, учитывающий глубину заложения трубопровода
    SoilWeightFluidizedInWater                     : TVariable; // Gammav - Вес взвешенного в воде грунта
    LonglivedRingtypeRigidity                      : TVariable; // Gtau   - Длительная кольцевая жесткость на единицу длины трубы

// --= / [ Параметры гидравлического расчёта ] / =--
    HydraulicRadius                                : TVariable; // Rs     - Гидравлический радиус потока
    EmpiricalExponent                              : TVariable; // a      - Эмпирический показатель степени
    HydraulicFrictionCoeff                         : TVariable; // Ls     - Коэффициент гидравлического трения по длине трубопровода
    SelfflowPipeSlop                               : TVariable; // is     - Уклон самотечного трубопровода
    PipeFilling                                    : TVariable; // hs_d   - Наполнение трубопровода
    DimlessExponentBeg                             : TVariable; // bs     - Безразмерный показатель степени
    DimlessExponentEnd                             : TVariable; // Beg    - начальное, End - конечное значение
    Acceleration                                   : TVariable; // g      - Ускорение свободного падения
    FluidFlowAverSpeed                             : TVariable; // u      - Средняя скорость потока жидкости
    ReinoldsNumQuad                                : TVariable; // Requ   - Число Рейнольдса
    ReinoldsNumPhi                                 : TVariable; // Rephi  - Число Рейнольдса
    NotFillFluidFlowAverSpeed                      : TVariable; // Vnf    - Средняя скорость течения жидкости при неполном заполнении трубопровода
    FillFluidFlowAverSpeedBeg                      : TVariable; // Vf     - Средняя скорость течения жидкости при полном заполнении трубопровода
    FillFluidFlowAverSpeedEnd                      : TVariable; // Beg    - начальное, End - конечное значение
    KinematicsToughCoef                            : TVariable; // v      - Коэффициент кинематической вязкости
    RsnfRsfCoef                                    : TVariable; // Rsnf_Rsf - Табличное отношение
    FluidConsumption                               : TVariable; // qs     - Расход жидкости

// --= / [ Коэффициенты ] / =--
    KwCoef                                         : TVariable; // Kw     - Табличный коэффициент
    AssuranceFactorOnStability                     : TVariable; // Kzu    - Коэффициент запаса на устойчивость
    TubeRoundoffProcessFactor                      : TVariable; // Kok    - коэффициент, учитывающий процесс округления овализованной трубы под действием внутреннего давления воды в водопроводе
    CrossSectionOvalityDelay                       : TVariable; // Ktau   - Коэффициент, учитывающий запаздывание овальности поперечного сечения трубы во времени и зависящий от типа грунта, степени его уплотнения, гидрогеологических условий, геометрии траншеи
    TroughFactor                                   : TVariable; // Kw     - Коэффициент прогиба, учитывающий качество подготовки ложа и уплотнения
    CrossSectionBottomEffectFactor                 : TVariable; // Kgr    - Коэффициент, учитывающий влияние грунта засыпки на овальность поперечного сечения трубопровода
    RingTypeRigidityFactor                         : TVariable; // Kg     - Коэффициент, учитывающий влияние кольцевой жёсткости оболочки трубы на овальность поперечного сечения трубопровода
    SandbedSoilFactorForFlexuralStresses           : TVariable; // Ksigma - Коэффициент постели грунта для изгибающих напряжений, учитывающий качество уплотнения
    AssuranceFactorOnOvalityTubeCrossSection       : TVariable; // Kzpsi  - Коэффициент запаса на овальность поперечного сечения трубы
    AssuranceFactor                                : TVariable; // Kz     - Коэффициент запаса, должен приводиться в нормативных документах
    SoilBulkFactor                                 : TVariable; // Ku     - Коэффициент уплотнения грунта
    RoughnessCoef                                  : TVariable; // Ke     - Коэффициент эквивалентной шероховатости
    InfluencingSoilFillingShellStabilityFactor     : TVariable; // Куг    - коэффициент, учитывающий влияние засыпки грунта на устойчивость оболочки
    TubeOvalityFactor                              : TVariable; // Ков    - коэффициент, учитывающий овальность трубы
// --= / [ Конец списка параметров] / =--

    CurrentCalc: TCalcType;
   public
    DBMaterialId: Integer;
    DBSoilId: Integer;

    procedure InitializeVars;

    constructor Create;
    destructor Destroy;
  end;


PM MAIL   Вверх
Vasay
Дата 6.10.2010, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



уни
Цитата

И не сомневайтесь в моей квалификации 


Наличие диплома (непонятно какой организации) не подтверждает квалификацию. 

Цитата

Оборонка должна вложить туда деньги.

Куда? В проект музыкального звонка для школы?


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
bems
Дата 6.10.2010, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



smartov, а вот 1С как раз трогать не надо. Там контингент учитывали при создании, и предметную область


--------------------
Обижено школьников: 8
PM MAIL   Вверх
bems
Дата 6.10.2010, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



Цитата(уни @  6.10.2010,  20:36 Найти цитируемый пост)
я эмбеддер - специалист по встроенным системам. Для таких людей как я норма изучения чего-то нового - это 2 месяца. За два месяца я не только яву освоил, но и продукт целый сделал.
Понятно. Ну это твоё право, только не говори вслух слова "квалификация" после этого.

Цитата(уни @  6.10.2010,  20:36 Найти цитируемый пост)
Вот результат программинга, если вы такой знаток английского, то попробуйте с ходу найти эквивалент терминам области на английском языке без подсматривания в словарь
Разрешите приступать? лол



--------------------
Обижено школьников: 8
PM MAIL   Вверх
уни
Дата 6.10.2010, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



bems, вы я вижу не поняли smile
Я знаю как устроены все стандартные языки программирования (кроме промышленных и экспертных систем). В силу своей профессии я уже освоил наверное с сотню средств разработки - для меня они все на одно лицо smile

Вообще, для того, чтобы разобраться в любом языке достаточно знать всего два: ассемблер (не IL) и какой-нить современный ЯВУ на выбор. Всё остальное - одинаково (кроме экспертных систем и промышленных языков, которые стандартизированы МЭКом).

bems, вы я вижу, пребываете у узком кругозоре. Давайте я вам его ещё расширю.

По теме опять же. Работал я в одной фирме по специальности (эмбеддером), которая занимается проектированием модулей АСУТП. Моя задача была поддержка и доработка модуля ввода-вывода. Он состоит из блока на AVR'ке и конфигуратора. Ядро разрабатывается на EC++ (это специальный C++ для микроконтроллеров). Конфигуратор писан в билдере на C++, конечно.

Так вот. Как Вы тут все видимо вообще не в теме. В России, как и в СССР, существуют ГОСТы и ГОСТ Ры - это такие документы, без которых вам не получить лицензию на свой продукт, я уж не говорю про всё остальное. Так вот при разработке таких устройств тоже приходится постоянно переписывать ТЕРМИНЫ русского языка на английский.

Вот зацените, специалисты smile (там листинг в несколько раз больше... не влезет) :
Код

CMVA8::CMVA8(void) : IDevice((DWORD*)&InitMVA8Settings, sizeof(SMVA8Settings)/sizeof(DWORD))
{
        // 16 разрядные регистры
        FMIPID = new CDeviceStandartTags<unsigned short>(static_cast<IDevice*>(this), "Код прибора", DeviceTagsID::MIPID, DEV_READ, 0xFF, 1, 3, 0x005, 3, 0, 0);
        FMIPVersionPO = new CDeviceStandartTags<unsigned short>(static_cast<IDevice*>(this), "Версия ПО", DeviceTagsID::MIPVersionPO, DEV_READ, 0xFF, 1, 3, 0x006, 0, 0, 0);
        FMIPAnalogChannelCount = new CDeviceStandartTags<unsigned short>(static_cast<IDevice*>(this), "Количество аналоговых каналов", DeviceTagsID::MIPAnalogChannelCount, DEV_READ, 0xFF, 1, 3, 0x007, 0, 0, 0);
        FMIPDigitalInputCount = new CDeviceStandartTags<unsigned short>(static_cast<IDevice*>(this), "Количество цифровых каналов", DeviceTagsID::MIPDigitalInputCount, DEV_READ, 0xFF, 1, 3, 0x007, 0, 0, 0);
        FMIPRelayCount = new CDeviceStandartTags<unsigned short>(static_cast<IDevice*>(this), "Количество релейных выходов", DeviceTagsID::MIPRelayCount, DEV_READ, 0xFF, 1, 3, 0x008, 0, 0, 0);
        FMIPRelayType = new CDeviceStandartTags<unsigned short>(static_cast<IDevice*>(this), "Тип релейных выходов", DeviceTagsID::MIPRelayType, DEV_READ, 0xFF, 1, 3, 0x009, 0, 0, 0);
        FMIPSerialNumber = new CDeviceStandartTags<unsigned long>(static_cast<IDevice*>(this), "Серийный номер", DeviceTagsID::MIPSerialNumber, DEV_READ, 0xFF, 1, 3, 0x00a, 0, 0, 0);

        FMIPDateTime = new CDeviceDateTimeTags(static_cast<IDevice*>(this), "Дата и время", DeviceTagsID::MIPDateTime, DEV_RDWR);
        FMIPState = new CDeviceStandartTags<unsigned short>(static_cast<IDevice*>(this), "Регистр состояния МИП", DeviceTagsID::MIPState, DEV_READ, 0xFF, 1, 3, 0x103, 0, 0, 0);
        FArchiveIndex = new CDeviceStandartTags<unsigned long>(static_cast<IDevice*>(this), "Номер текущей записи архива", DeviceTagsID::ArchiveIndex, DEV_READ, 0xFF, 1, 3, 0x104, 0, 0, 0);
        FArchiveDamageIndex = new CDeviceStandartTags<unsigned long>(static_cast<IDevice*>(this), "Номер текущей записи архива аварий", DeviceTagsID::ArchiveDamageIndex, DEV_READ, 0xFF, 1, 3, 0x105, 0, 0, 0);
        FArchiveCalibrationIndex = new CDeviceStandartTags<unsigned long>(static_cast<IDevice*>(this), "Номер текущей записи архива калибровок", DeviceTagsID::ArchiveCalibrationIndex, DEV_READ, 0xFF, 1, 3, 0x106, 0, 0, 0);
        FArchiveWorkPeriod = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Период архивирования", DeviceTagsID::ArchiveWorkPeriod, DEV_RDWR | DEV_ALL | DEV_FILE, 0xFF, 1, 3, 0x107, 0, 0, 12);
        FArchiveDeviation = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Максимальное отклонение архива", DeviceTagsID::ArchiveDeviation, DEV_RDWR | DEV_ALL | DEV_FILE, 0xFF, 1, 3, 0x109, 0, 0, 10);
        FArchiveDamagePeriod = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Период архивирования аварий", DeviceTagsID::ArchiveDamagePeriod, DEV_RDWR | DEV_ALL | DEV_FILE, 0xFF, 1, 3, 0x10b, 0, 0, 12);
        FArchiveDamageDeviation = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Максимальное отклонение архива аварий", DeviceTagsID::ArchiveDamageDeviation, DEV_RDWR | DEV_ALL | DEV_FILE, 0xFF, 1, 3, 0x10d, 0, 0, 10);
        FMIPDefaultKXC = new CDeviceStandartTags<signed short>(static_cast<IDevice*>(this), "Температура КХС по умолчанию", DeviceTagsID::MIPDefaultKXC, DEV_RDWR | DEV_ALL | DEV_FILE, 0xFF, 1, 3, 0x10f, 0, -45, 55);
        FLinkAddress = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Магистральный адрес", DeviceTagsID::LinkAddress, DEV_RDWR, 0xFF, 1, 3, 0x110, 1, 1, 255);
        FLinkSpeed = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Скорость обмена", DeviceTagsID::LinkSpeed, DEV_RDWR | DEV_FILE, 0xFF, 1, 3, 0x111, 0, 0, 1);
        FMIPUserPassword = new CDeviceStandartTags<unsigned short>(static_cast<IDevice*>(this), "Пароль на уставки", DeviceTagsID::MIPUserPassword, DEV_RDWR, 0xFF, 1, 3, 0x112, 0, 0, 9999);
        FMIPAdminPassword = new CDeviceStandartTags<unsigned short>(static_cast<IDevice*>(this), "Общий пароль", DeviceTagsID::MIPAdminPassword, DEV_RDWR, 0xFF, 1, 3, 0x113, 0, 0, 9999);

        FChannelSensorType = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Типы датчиков аналоговых каналов", DeviceTagsID::ChannelSensorType, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x210, 0, 0, 43);
        FChannelCommaPosition = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Позиции запятых аналоговых каналов", DeviceTagsID::ChannelCommaPosition, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x220, 0, 0, 3);
        FChannelCoefDigitalFiltration = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Цифровая фильтрация аналоговых каналов", DeviceTagsID::ChannelCoefDigitalFiltration, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x230, 0, 0, 2);
        FChannelRelay1Charter[0] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Первое реле первой уставки", DeviceTagsID::ChannelRelay1Charter1, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x2c0, 0, 0, InitMVA8Settings.CountRelay);
        FChannelRelay1Charter[1] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Первое реле второй уставки", DeviceTagsID::ChannelRelay1Charter2, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x2e0, 0, 0, InitMVA8Settings.CountRelay);
        FChannelRelay1Charter[2] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Первое реле третьей уставки", DeviceTagsID::ChannelRelay1Charter3, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x300, 0, 0, InitMVA8Settings.CountRelay);
        FChannelRelay1Charter[3] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Первое реле четвёртой уставки", DeviceTagsID::ChannelRelay1Charter4, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x320, 0, 0, InitMVA8Settings.CountRelay);
        FChannelRelay2Charter[0] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Второе реле первой уставки", DeviceTagsID::ChannelRelay2Charter1, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x2d0, 0, 0, InitMVA8Settings.CountRelay);
        FChannelRelay2Charter[1] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Второе реле второй уставки", DeviceTagsID::ChannelRelay2Charter2, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x2f0, 0, 0, InitMVA8Settings.CountRelay);
        FChannelRelay2Charter[2] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Второе реле третьей уставки", DeviceTagsID::ChannelRelay2Charter3, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x310, 0, 0, InitMVA8Settings.CountRelay);
        FChannelRelay2Charter[3] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Второе реле четвёртой уставки", DeviceTagsID::ChannelRelay2Charter4, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x330, 0, 0, InitMVA8Settings.CountRelay);
//        FChannelRelayCharterNDAT[0] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Логика реле первой уставки при не норме датчика", DeviceTagsID::FChannelRelayCharter1NDAT, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x340, 0, 0, 3);
//        FChannelRelayCharterNDAT[1] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Логика реле второй уставки при не норме датчика", DeviceTagsID::FChannelRelayCharter2NDAT, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x350, 0, 0, 3);
//        FChannelRelayCharterNDAT[2] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Логика реле третьей уставки при не норме датчика", DeviceTagsID::FChannelRelayCharter3NDAT, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x360, 0, 0, 3);
//        FChannelRelayCharterNDAT[3] = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Логика реле четвёртой уставки при не норме датчика", DeviceTagsID::FChannelRelayCharter4NDAT, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x370, 0, 0, 3);
        FChannelRelayNDAT = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Реле не нормы датчика аналоговых каналов", DeviceTagsID::ChannelRelayNDAT, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x380, 0, 0, InitMVA8Settings.CountRelay);
        FCurrentAnalogChannelValue = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Текущие значения аналоговых каналов", DeviceTagsID::CurrentAnalogChannelValue, DEV_READ, 0, 0, 3, 0x390, 0, -32768, 25000);
        FChannelPhizicalValueMin = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Нижняя граница физических значений аналоговых каналов", DeviceTagsID::ChannelPhizicalValueMin, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x3a0, 0, -1999, 9999);
        FChannelPhizicalValueMax = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Верхняя граница физических значений аналоговых каналов", DeviceTagsID::ChannelPhizicalValueMax, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x3b0, 0, -1999, 9999);
        FChannelCharterValue[0] = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Значения первых уставок", DeviceTagsID::ChannelCharter1Value, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x3c0, -1999, -1999, 9999);
        FChannelCharterValue[1] = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Значения вторых уставок", DeviceTagsID::ChannelCharter2Value, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x3d0, -1999, -1999, 9999);
        FChannelCharterValue[2] = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Значения третьих уставок", DeviceTagsID::ChannelCharter3Value, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x3e0, 9999, -1999, 9999);
        FChannelCharterValue[3] = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Значения четвёртых уставок", DeviceTagsID::ChannelCharter4Value, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x3f0, 9999, -1999, 9999);
        FChannelCharterHistoresist = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Гистерезис срабатывания уставок", DeviceTagsID::ChannelCharterHistoresist, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x400, 0, 0, 10);
        FChannelMaxSpeed = new CDeviceStandartTags<float>(static_cast<IDevice*>(this), "Максимальная скорость изменения аналоговых каналов", DeviceTagsID::ChannelMaxSpeed, DEV_RDWR | DEV_ALL | DEV_FILE, 0, 0, 3, 0x410, 0, 0, 10);
#if 0
        FMIPDigitalInputCount = new CDeviceStandartTags<unsigned short>(static_cast<IDevice*>(this), "Количество цифровых входов", DeviceTagsID::MIPDigitalInputCount, DEV_READ, 0xFF, 1, 3, 0x0A, 0, 0, 0);
        FMIPNMIPRelay = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Реле не нормы прибора", DeviceTagsID::MIPNMIPRelay, DEV_RDWR | DEV_ALL | DEV_FILE, 0xFF, 1, 3, 0x194, 0, 0, InitSh9329KCSettings.CountRelay);
        FMIPFilterNMIPRelay = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Фильтр реле не нормы прибора", DeviceTagsID::MIPFilterNMIPRelay, DEV_RDWR | DEV_ALL | DEV_FILE, 0xFF, 1, 3, 0x195, 0, 0, InitSh9329KCSettings.CountRelay);
        FMIPTypeAutoList = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Тип авто пролистывания", DeviceTagsID::MIPTypeAutoList, DEV_RDWR | DEV_ALL | DEV_FILE, 0xFF, 1, 3, 0x198, 0, 0, 2);
        // NetSettings
        FNetWORDConvert = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Преобразование WORD", DeviceTagsID::NetWORDConvert, DEV_RDWR | DEV_ALL | DEV_FILE, 0xFF, 1, 3, 0x182, 0, 0, 1);
        FNetDWORDConvert = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Преобразование DWORD", DeviceTagsID::NetDWORDConvert, DEV_RDWR | DEV_ALL | DEV_FILE, 0xFF, 1, 3, 0x183, 0, 0, 3);
        FNetFLOATConvert = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Преобразование FLOAT", DeviceTagsID::NetFLOATConvert, DEV_RDWR | DEV_ALL | DEV_FILE, 0xFF, 1, 3, 0x184, 0, 0, 3);
        FNetDOUBLEConvert = new CDeviceStandartTags<unsigned char>(static_cast<IDevice*>(this), "Преобразование DOUBLE", DeviceTagsID::NetDOUBLEConvert, DEV_RDWR | DEV_ALL | DEV_FILE, 0xFF, 1, 3, 0x185, 0, 0, 7);


PM MAIL   Вверх
bems
Дата 6.10.2010, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



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

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


--------------------
Обижено школьников: 8
PM MAIL   Вверх
уни
Дата 6.10.2010, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Vasay, я то за свои слова отвечаю и они вес имеют smile 
Специально для вас:
user posted image

bems Этот непонятный код - это ТА САМАЯ объективная реальность, про которую видимо Вы мало что знаете.

Вот этот модуль с этим "непонятным" для вас кодом (см в дереве):
Модуль ввода аналоговых сигналов ВА 8

Предназначен для преобразования постоянного напряжения, тока, сигналов датчиков температуры, давления и др. в цифровой код по интерфейсу RS-485, а также для формирования управляющих команд для модулей релейных выходов (РВ 4 или РВ 16).

Это сообщение отредактировал(а) уни - 6.10.2010, 21:25
PM MAIL   Вверх
bems
Дата 6.10.2010, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



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


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Vasay
Дата 6.10.2010, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



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


Цитата(уни @  6.10.2010,  21:15 Найти цитируемый пост)
Vasay, я то за свои слова отвечаю и они вес имеют
Специально для вас:



Бумажки в РФ мало что значат.

А вот это код, многое говорит о Ваших знаниях Java (и культуре разработке) И дело не только в использование русского языка:
Код

   public char Символ() {
        if ( Свойства.Позиция >= ( Свойства.Размер - 1 ) )
            return ' ';
        return Текст.charAt( (int) ++Свойства.Позиция );
    }

    public int ПолучитьЭлемент() throws Exception {
        char Литера;

        do {
            if ( Свойства.Позиция >= ( Свойства.Размер - 1 ) ) {
                Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
                return Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_КОНЕЦ;
            }
            Литера = Символ();
        } while ( ( Литера == ' ' )
                || ( Литера == '\t' )
                || ( Литера == '\r' )
                || ( Литера == '\n' ) );

        // Множество управляющих символов
        if ( Литера == ';' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
//            if ( Свойства.Позиция >= ( Свойства.Размер - 1 ) ) {
//                return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_КОНЕЦ );
//            }
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ВЫВОД );
        }
        // Множество операций
        else if ( Литера == '*' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_УМНОЖИТЬ );
        }
        else if ( Литера == '/' ) {
            long врм = Свойства.Позиция;

            Литера = Символ();
            // Пропуск строчного комментария
            if ( Литера == '/' ) {
                do {
                    if ( Свойства.Позиция >= ( Свойства.Размер - 1 ) ) {
                        Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
                        return Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_КОНЕЦ;
                    }
                    Литера = Символ();
                } while ( !( ( Литера == '\r' ) || ( Литера == '\n' ) ) );

                return ПолучитьЭлемент();
            } else {
                Свойства.Позиция = врм;
            }

            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ДЕЛИТЬ );
        }
        else if ( Литера == '+' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ПЛЮС );
        }
        else if ( Литера == '-' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_МИНУС );
        }
        else if ( Литера == '^' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_СТЕПЕНЬ );
        }
        else if ( Литера == '!' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ФАКТОРИАЛ );
        }
        else if ( Литера == '(' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ЛЕВАЯСКОБКА );
        }
        else if ( Литера == '[' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ЛЕВАЯКВАДРСКОБКА );
        }
        else if ( Литера == ']' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ПРАВАЯКВАДРСКОБКА );
        }
        else if ( Литера == ')' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ПРАВАЯСКОБКА );
        }
        else if ( Литера == '=' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ПРИСВОИТЬ );
        }
        else if ( Литера == ',' ) {
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ЗАПЯТАЯ );
        }

        // Строка текста, заключённая в кавычки
        else if ( Литера == '"' ) {
            Свойства.СтрокаЗначение = "";
            Литера = Символ();
            while ( Литера != '"' ) {
                Свойства.СтрокаЗначение += Литера;
                Литера = Символ();
            }
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ТЕКСТ );
        }

        // Множество целых чисел
        else if ( ( Литера >= '0' ) && ( Литера <= '9' ) ) {
            String Число = "" + Литера;
            Литера = Символ();

            while ( ( ( Литера >= '0' ) && ( Литера <= '9' ) ) ) {
                Число += Литера;
                Литера = Символ();
            }

            Свойства.ЧислоЗначение = Integer.parseInt( Число );
            Свойства.Позиция--; // возвращаем позицию на предыдущий символ
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            
            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ЧИСЛО );
        }

        // Множество имён
        else if ( ( ( Литера >= 'a' ) && ( Литера <= 'z' ) ) 
                || ( ( Литера >= 'A' ) && ( Литера <= 'Z' ) )
                || ( ( Литера >= 'А' ) && ( Литера <= 'я' ) )
                || ( Литера == 'Ё' )
                || ( Литера == 'ё' )
                || ( Литера == '_' )
                ) {
            Свойства.ИмяЗначение = "" + Литера;
            Литера = Символ();

            while ( ( ( Литера >= 'a' ) && ( Литера <= 'z' ) ) 
                    || ( ( Литера >= 'A' ) && ( Литера <= 'Z' ) )
                    || ( ( Литера >= 'А' ) && ( Литера <= 'я' ) )
                    || ( Литера == 'Ё' )
                    || ( Литера == 'ё' )
                    || ( ( Литера >= '0' ) && ( Литера <= '9' ) )
                    || ( Литера == '.' )
                    || ( Литера == '_' )
                    ) {
                Свойства.ИмяЗначение += Литера;
                Литера = Символ();
            }
            Свойства.Позиция--; // возвращаем позицию на предыдущий символ
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент;
            
            // Ключевые слова
            if ( ( Свойства.ИмяЗначение.equals( "true" )
                    || ( Свойства.ИмяЗначение.equals( "false" ) )
                    ) ) {
                return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_КЛЮЧЕВОЕ_СЛОВО );               
            }

            return ( Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ИМЯ );
        }

        throw new ИсключениеРазборщика( ОШИБКА_НЕИЗВЕСТНЫЙ_СИМВОЛ );
    }

    public ОбразРезультата ОсновныеОперации( boolean продолжать ) throws Exception {
        ОбразРезультата Результат;
        if ( продолжать ) ПолучитьЭлемент();

        switch ( Свойства.ТекущийЭлемент ) {
            case ЭЛЕМЕНТ_КОНЕЦ:
            case ЭЛЕМЕНТ_ВЫВОД:
                return null;
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ЧИСЛО ) {
            Результат = new ОбразРезультата( Свойства.ЧислоЗначение );
            ПолучитьЭлемент();
            return Результат;
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_КЛЮЧЕВОЕ_СЛОВО ) {
            if ( Свойства.ИмяЗначение.equals( "true" ) ) {
                Результат = new ОбразРезультата( true );
                ПолучитьЭлемент();
                return Результат;
            }
            else if ( Свойства.ИмяЗначение.equals( "false" ) ) {
                Результат = new ОбразРезультата( false );
                ПолучитьЭлемент();
                return Результат;
            }
            
            throw new ИсключениеРазборщика( ОШИБКА_НЕИЗВЕСТНОЕ_КЛЮЧЕВОЕ_СЛОВО );
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ИМЯ ) {
            ОбразСвойств врм;
            String имя = Свойства.ИмяЗначение;

            врм = Свойства;
            Свойства = new ОбразСвойств( врм );
            ПолучитьЭлемент();

            if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ПРИСВОИТЬ ) {
                Свойства = врм;
                return ОсновныеОперации( true );
            }
            Свойства = врм;

            if ( Переменные.ИмяВТаблице( имя ) ) {
                int свойство = Переменные.СвойствоЭлемента( имя );
                if ( ( свойство == СВОЙСТВО_КОНСТАНТА ) || ( свойство == СВОЙСТВО_ПЕРЕМЕННАЯ ) ) {
                    ОбразРезультата знач = Переменные.ЗначениеЭлемента( имя );
                    ПолучитьЭлемент();
                    return знач;
                }
            } else {
                throw new ИсключениеРазборщика( ОШИБКА_НЕИЗВЕСТНЫЙ_ИДЕНТИФИКАТОР );                
            }
            return ОсновныеОперации( true );
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ПРИСВОИТЬ ) {
            ОбразСвойств врм;
            врм = Свойства;
            Свойства = new ОбразСвойств( врм );
            ПолучитьЭлемент();

            if ( ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ВЫВОД ) || ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_КОНЕЦ ) ) {
                throw new ИсключениеРазборщика( ОШИБКА_ОЖИДАЕТСЯ_ВЫВОД );
            }
            Свойства = врм;

            if ( Свойства.ПредыдущЭлемент == ЭЛЕМЕНТ_ИМЯ ) {
                String имя = Свойства.ИмяЗначение;
                if ( Переменные.ИмяВТаблице( имя ) ) {
                    int свойство = Переменные.СвойствоЭлемента( имя );
                    if ( свойство == СВОЙСТВО_ПЕРЕМЕННАЯ ) {
                        ОбразРезультата знач = СложениеВычитание( true );
                        Переменные.ИзменитьЭлемент( имя, свойство, знач );
                        ПолучитьЭлемент();
                        return знач;
                    }
                    throw new ИсключениеРазборщика( ОШИБКА_ИЗМЕНИТЬ_НЕЛЬЗЯ );
                } else {
                    ОбразРезультата знач = СложениеВычитание( true );
                    Переменные.ДобавитьЭлемент( имя, СВОЙСТВО_ПЕРЕМЕННАЯ, знач );
                    ПолучитьЭлемент();
                    return знач;
                }
            }
            throw new ИсключениеРазборщика( ОШИБКА_ПРИ_ПРИСВОЕНИИ );
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ТЕКСТ ) {
            Результат = new ОбразРезультата( Свойства.СтрокаЗначение );
            ПолучитьЭлемент();
            return Результат;
        }

        // Унарный минус
        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_МИНУС ) {
            return операторМИНУС( УмножениеДеление( true ) );
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ЛЕВАЯСКОБКА ) {
            if ( Свойства.ПредыдущЭлемент == ЭЛЕМЕНТ_ИМЯ ) {
                String имя = Свойства.ИмяЗначение;
                int свойство = Переменные.СвойствоЭлемента( имя );
                if ( свойство == СВОЙСТВО_ФУНКЦИЯ ) {
                    ОбразРезультата знач = Список( true );
                    if ( Свойства.ТекущийЭлемент != ЭЛЕМЕНТ_ПРАВАЯСКОБКА )
                        throw new ИсключениеРазборщика( ОШИБКА_ОЖИДАЕТСЯ_ПРАВАЯ_СКОБКА );
                    ПолучитьЭлемент();
                    return Функция( имя, знач );
                } else {
                    throw new ИсключениеРазборщика( ОШИБКА_НЕСООТВЕТСТВИЕ_ТИПА );
                }
            }
            Результат = СложениеВычитание( true );
            if ( Свойства.ТекущийЭлемент != ЭЛЕМЕНТ_ПРАВАЯСКОБКА )
                throw new ИсключениеРазборщика( ОШИБКА_ОЖИДАЕТСЯ_ПРАВАЯ_СКОБКА );
            ПолучитьЭлемент();
            return Результат;
        }

        if ( Свойства.ТекущийЭлемент == ЭЛЕМЕНТ_ЛЕВАЯКВАДРСКОБКА ) {
            ОбразРезультата знач = Список( true );
            if ( Свойства.ТекущийЭлемент != ЭЛЕМЕНТ_ПРАВАЯКВАДРСКОБКА )
                throw new ИсключениеРазборщика( ОШИБКА_ОЖИДАЕТСЯ_ПРАВАЯ_КВАДР_СКОБКА );
            ПолучитьЭлемент();
            Vector врм = ( Vector ) знач.Значение.elementAt(0);
            int строк = ( ( Integer ) знач.Размер.elementAt(0) ).intValue();
            return операторSTACK( new ОбразРезультата( строк, 1, врм ) );
        }

        return null;
    }


Хотя, чему удивляться, если:
Цитата

За два месяца я не только яву освоил, но и продукт целый сделал.



--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
уни
Дата 6.10.2010, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Чё спорите тогда? Я же сказал, что делите рынки на внутренний и внешние. Тогда проблем с понимаем не будет. Мои примеры - это чисто внутренний российский рынок: 
- программа для расчётов внутри компании Роспайп;
- музыкальный программируемый школьный звонок;
- конфигуратор для модуля аналогового ввода и ядро модуля;

У меня есть ещё примеры, т.к. у меня богатый опыт. Внутри России просто не паханное поле: это и оборонка сама по себе и расчёты по разным ГОСТам, СНиПам, и промышленная автоматика (мы её делаем не хуже запада)... сейчас всё автоматизируется и поскольку внутри России нет предложений, то берут импортные программы. Те же расчёты сетей водоотведения и канализации, к примеру. Какая разница на каком языке эти программы написаны? Заказчикам это по барабану, хоть на русском, хоть на китайском, главное, чтобы делала своё дело. Дураку ясно, что для внутреннего рынка проще писать на русском, тогда не будет проблем в переводе на промежуточный язык - вот это и есть та самая не нормальность.

Люди, которые кроме веб-программирования и около-интернетного программирования больше ничего не видели - вот они и не понимают smile про внутренний рынок.

Добавлено через 2 минуты и 13 секунд
"Бумажки в РФ мало что значат."
Vasay, ага, особенно, когда их у вас нет smile

"А вот это код, многое говорит о Ваших знаниях Java (и культуре разработке) И дело не только в использование русского языка:"
Да неужели? Имейте в виду smile что я читал книжку "Совершенный код" и применил эти знания в этом коде.
PM MAIL   Вверх
Vasay
Дата 6.10.2010, 22:26 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата

Да неужели? Имейте в виду  что я читал книжку "Совершенный код" и применил эти знания в этом коде.


Одного "читал", похоже,  недостаточно... 

Цитата(уни @  6.10.2010,  21:48 Найти цитируемый пост)
Vasay, ага, особенно, когда их у вас нет 


А может есть   smile  и даже без троек  smile 


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
gcc
Дата 7.10.2010, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

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



кстате, а по идее можно же просто файлик распарсить? (и название переменных и т.д. в том числе)

только что пример сочинил, работает smile

Код

$i = 5;
печатаем "666" если ($i>4);


Код

#!/usr/bin/perl


sub open_data {
    my $handle = shift;
    local $/ = '';    # Включить режим чтения абзацев
    return <$handle>;
}


sub rus {

 for (@_[0]) {
    s{печатаем}{print}ig; 
    s{если}{if}ig;
 }
 return @_[0];
}


eval rus open_data(*DATA);

die "Exception error: $!" if $@;

# real code:
__DATA__

$i = 5;
печатаем "666" если ($i>4);



Это сообщение отредактировал(а) gcc - 7.10.2010, 11:13
PM WWW ICQ Skype GTalk Jabber   Вверх
smartov
Дата 7.10.2010, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



bems
Цитата(bems @  6.10.2010,  20:39 Найти цитируемый пост)
а вот 1С как раз трогать не надо

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

Добавлено через 5 минут и 3 секунды
уни, при всём уважении к вашим бумажкам, по-моему вы слишком откровенно хвастаетесь. Мы объективно не можем оценить ваши наработки. Чтобы оценить встроенные системы, нужно её пощупать изнутри или попользоваться. Я сам разрабатывал подобное. Стороннему человеку потом очень сложно объяснить, сколько проблем пришлось решить, и что проблемы были серьезного уровня. А иногда такие, которые никто не решал.

Что же до темы, то не могу найти у вас хорших аргументов за русскоязычную нотацию, кроме как "авторитетные заяления", что это лучше и востребовано.
PM MAIL   Вверх
уни
Дата 7.10.2010, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ну если не можете охватить, то усомнитесь в себе тогда. Что тут неясного.

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

А теперь поднимитесь на уровень области.... страшно? smile

А теперь ещё выше... на уровень государства!!! smile Страшно?

А теперь я вам открою экономическую тайну. Мы УЖЕ работаем по этим самым американским стандартам внутри собственной экономики.
Вместо межотраслевого баланса (МОБ) по балансу народного хозяйства (БНХ), который применялся в СССР, решили "не изобретать велосипед" (как тут многие по недоумию или скудоумию всё время предлагают).

Сейчас вводится СНС - система национальных счетов. Её полный запуск планируется на 2011-2014 гг.
Последний МОБ России по методологии БНХ и первый экспериментальный МОБ «Затраты – Выпуск» (предателя науки Леонтьева - нобелевского лауреата) в концепции СНС были разработаны за 1991 год.

Что это означает для России, для тех, кому судьба своих будущей детей не безразлична:
http://www.aup.ru/articles/economics/12.htm

У человека есть: инстинкты, автоматизмы, разум и интуиция.

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

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

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

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

Подключайте моск и хватит хавать всю эту англоязычную пропаганду (Вы вообще что знаете про эту самую объективную реальность? Днём с огнём её не сыщешь... СССР развалилось или его развалили?). Вашим детям жить в России. Если Вы ничего не можете для России предложить... то так и напишите... что насрать вам на её будущее. Билл Гейтс в своей старой книжке "Дорога в будущее" написал про спираль технологий. Эта .Net нафик никому не пала. Вместо упрощения кодинга, он всё усложняется и усложняется. Они вводят монополию на стандарт - а это важнее всего остального. Кто диктует технологию глобально - тот и управляет отраслью. Они уже сейчас кропят над новым стандартом на замену .Net... знают, что пока мы заняты переводами... мы остаемся лишь обезьянами, которым показывают на какие кнопки жать... и какие продукты покупать.
PM MAIL   Вверх
alexvs11
Дата 7.10.2010, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


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

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



уни, да выучи ты уже английский, тз на англицком, отчет на пендосском не написать?  
а еще, может для вас секрет, но иногда приходиться работать с кодом, который был написан в другой стране, сейчас разбираюсь с индусским кодом, в прямом смысле, так там комментарии на английском и славу богу код тоже smile, его любой ЗНАЮЩИЙ английский поймет(относительно того, насколько это возможно), ваш код даже ваши коллеги по-ходу понять не смогут  smile 
PM MAIL   Вверх
уни
Дата 7.10.2010, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



alexvs11, услышал звон, не знаешь где он...

Перечитай тему. Я несколько раз написал, что я говорю про ВНУТРЕННИЙ РЫНОК. Причём тут индусы? Вы чего так к этим индусам не равнодушны? Или тут все такие пессимисты, что в упор не видят российского рынка? У нас что не для кого писать программы? Вы карту нашей страны видели? Промышленность знаете что такое?

Да хоть с Марса код разбирайте - это дела внешние. Не надо подменять понятия. Я говорю про код, который останется в России и разрабатывается для России. Или по-вашему надо сразу писать всё во вне? А про ГОСТы что-нить слышали? Вы думаете США было так просто предлагать нам их продукты? У них другая система измерения... и до чего дошло, что у нас кое-где мешают ГОСТы со штатовскими стандартами из-за того, что их ПО удобнее использовать (а оно не выдает отчеты в наших ГОСТах).
PM MAIL   Вверх
alexvs11
Дата 7.10.2010, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


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

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



а почему школьный звонок рассчитан на внутренний рынок, на внешнем рынке не найдется дурака, что купит его? 
PM MAIL   Вверх
bems
Дата 7.10.2010, 18:24 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



Совок такой совок


--------------------
Обижено школьников: 8
PM MAIL   Вверх
уни
Дата 7.10.2010, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Нет, не найдётся. Я изучил аналоги подобных устройств по планете и выложил их все, правда В Контакте, т.к. там удобная медийная база (тексты, фирмы, фотки, деморолики и видеоруководства).

Если есть аккаунт, то можете посмотреть на весь зоопарк (более 30 звонковых устройств):
http://vkontakte.ru/album-18953849_114087712

А вот все производители:
http://vkontakte.ru/topic-18953849_23186042
и
http://vkontakte.ru/topic-18953849_23206706

У них нет музыкальных звонков, только автоматизация звонков громкого боя. Только в России есть где-то 4 устройства, которые проигрывают музыку, кроме непосредственно автоматического управления.

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

Предыдущая версия устройства проработала 4 года, но не умела переключать расписания автоматически. Когда получу свой кириллический домен, размещу инфу о нём в рунете.
PM MAIL   Вверх
smartov
Дата 7.10.2010, 18:41 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



Я вам знаете что скажу. Представьте. Делаете вы протокол общения системы по управления целой(!!) планетой. Всей. Сразу. Огромная система.

Страшно?  smile Это только начало...

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

Страшно?  smile только цветочки...

Сейчас создатся инновационный город Сколково. Но вы даже не можете себе представить глубину проблемы. Бюджет новейших разработок Российского Государства подводится опять-таки арабскими цифрами! 

У вас мозг есть, если фимоз его не побил? Думали когда-то им почему Саудовская Аравия - такая богатая страна. Что у них народ что-ли умнее? Да всё просто. Цифры то арабские, вот они ими и крутят как хотят. А вы хаваете. И подобные вам. Вон годы и то пишете этими чёртовыми цифрами.

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

Так что если вы их используете, то просто и скажите что вам тупо насрать на будущее России. Вас не интересует ничего, кромих этих дьявольских цифр, у вас на счету. Продали её давно за деньги, на которых те же самые цифры. Если вы это не понимаете, то может хоть дети ваши умнее будут.
PM MAIL   Вверх
уни
Дата 7.10.2010, 19:11 (ссылка)    | (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



smartov, еврей? smile

Вы зачем русский язык свели к цифрам? Это не достойное занятие - унижать великий и могучий русский язык.

Аналоговый сигнал не постоянен, как вы написали, а непрерывен smile

Всё дело в образном мышлении, за которое отвечает правое полушарие. За логику и цифры отвечает левое полушарие головного мозга. Потому-то я про еврея и спрашиваю... у них трудности с образным мышлением.

Аналоговая техника тем хороша, что в отличии от цифровой она может либо работать, либо не очень, но работать, либо плохо, но всё-таки работать. А цифровая - либо работает, либо нет. Это хорошо видно сейчас при вводе цифрового вещания у нас в стране. Если у вас есть телик с приёмом и тех и тех каналов, то можно заметить, что если двигать антенну, то аналоговый канал может либо показывать, либо плохо показывать, либо ужасно. но показывать, а цифровой - либо показывает, либо нет smile

Но это с точки зрения надёжности.

Саудовская Аравия - первая по запасам нефти на планете. Мы, вроде, вторые, но у нас разведано больше (в книжке З. Бзежинского "Великая шахматная доска" есть по этому поводу цифры). Причём тут её богатство?

Да страна рухнула... но тут у вас уже проблемы с понимаем. Страна не "рухнула", а её завалили. Между прочим, та же Саудовская Аравия и помогла. Учите матчасть и не несите ахинею...

По поводу истории "как развалили СССР" отсылаю тех, кто не в теме к компетентным товарищам, кто это изучал:
"Сулакшин С. С., Гендиректор центра проблемного анализа и государственно-управленческого проектирования, бывший председатель комитета по промышленному развитию и высоким технологиям Торгово-промышленной палаты РФ о причинах кризиса в РФ и о его страшных перспективах при нашем бездействии"
http://vkontakte.ru/video27747611_152112488

Сначала просмотрите, а потом пишите, думая smile

Так вот, про образное мышление и почему на русском будет писать проще. Прочитайте бегло:

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

Чтобы уметь также читать по-английски smile надо жить в английской среде. У русского человека в мозгу образы русских слов и за всю жизнь он учится опознавать их мгновенно. Если вы не можете с такой же скоростью внимать текст на английском, то Вы заранее в проигрыше перед англоязычными программерами, т.к. у них в голове ОБРАЗЫ слов и считывают они текст мгновенно, как Вы, "увидев" этот текст, даже не читая его побуквенно.

Вот и всё, но эта ВЕЩЬ тянет за собой остальные проблемы. Целый ком.

Это сообщение отредактировал(а) уни - 7.10.2010, 19:14
PM MAIL   Вверх
Shaggie
Дата 8.10.2010, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(уни @  7.10.2010,  17:15 Найти цитируемый пост)
Создаёте вы ПО для управления городом. Заметьте, что русским городом, а не американским - это принципиальная разница!

 smile 


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
уни
Дата 8.10.2010, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Shaggie, Вы слышали что-нить про автоматику, которая управляет целостностью энергетической системы страны? По ЛЭП передаётся не только энергия, но и специальные сигналы для контроля среды её передачи.

Если такие системы будут написаны не нами, то элементарно сделать там закладу и отключить Москву или Питер от электричества полностью.
Уже были прециденты, когда автоматика отключала целые города.

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

На заводе, к примеру, в случае сбоя импортной техники, звонят за границу в КБ и просят её продиагностировать. Для этого в условиях контракта написано, что на заводе должно быть подключение к Интернет, либо телефонная линия должна иметь возможность соединиться с КБ в другой стране для удалённого диагностирования. Они через модем соединяются со своим аппаратом, сливают к себе данные и удалённо оценивают проблему, а потом дают указания персоналу ЧТО нужно сделать. Я сам присутствовал при таком "ремонте".

Это даже не смешно. А теперь представьте, что у нас на каждом заводе есть импортная техника и ремонт её осуществляется именно таким способом, т.к. лезть в неё запрещено. Если не будет связи, то завод через некоторое время встанет, т.к. нет спецов, кто мог бы это дело отремонтировать.

То же самое и со всем остальным. И я не зря упомянул области, города, государство. Если применять чужое, то для УПРАВЛЕНИЯ этим чужим ПО нам понадобятся консультации с ЗАПАДОМ. Получится, что мы ЗАВИСИМЫ в этом вопросе. Стыдно для такой страны занимать такое зависимое положение, тем более, когда виден очевидный вред от этого (МОБ "З-В" Леонтьева, который сейчас переводят с английского на русский и пытаются адаптировать, не изобретая велосипед).

Я не хочу, чтобы нас разделили из-за потери управления и не хочу, чтобы Россия превратилась в Соединённые Штаты России.
PM MAIL   Вверх
Shaggie
Дата 8.10.2010, 10:17 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



уни, не надо так мучаться, пытаясь объяснить программистам смысл словосочетания "предметная область"  smile  Сложность входа в неё слабо зависит от алфавита, на котором базируется синтаксис языка, более того, не всегда русский перевод способен адекватно отобразить изначально нерусскую терминологию. Все основные прорывы в Computer Science происходят на английском языке, каким бы это несправедливым лично Вам не казалось - а значит, надо знать язык хотя бы просто для того, чтобы быть в курсе новостей.


Цитата(уни @  8.10.2010,  09:51 Найти цитируемый пост)
Если такие системы будут написаны не нами, то элементарно сделать там закладу и отключить Москву или Питер от электричества полностью.

 smile  Это пройдёт.


Цитата(уни @  8.10.2010,  09:51 Найти цитируемый пост)
А теперь подумайте алгоритм действий работника в случае сбоя такой автоматики, если все инструкции и сама техника на английском языке? (Нельзя перевести всё полностью)

 smile  smile  smile  Имеет смысл перестать набирать "специалистов" на вокзалах по объявлениям.


Цитата(уни @  8.10.2010,  09:51 Найти цитируемый пост)
Если применять чужое, то для УПРАВЛЕНИЯ этим чужим ПО нам понадобятся консультации с ЗАПАДОМ. Получится, что мы ЗАВИСИМЫ в этом вопросе. Стыдно для такой страны занимать такое зависимое положение, тем более, когда виден очевидный вред от этого

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


P.S. Таки а в чём принципиальная разница в системах управления русскими и американскими городами?


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
smartov
Дата 8.10.2010, 11:22 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



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

На этой грустной ноте настойчиво прошу прекратить тему "Сионистское Правительство Всех Контролирует". Давайте рассмотрим другие аспекты языка программирования с русской нотацией. Людям неинтересно, поверьте. Вы пишете параноидальные посты, которые никто не воспринимает и не воспримет всерьёз. Кругом враги, шпионы и сионисты без асбтрактного мышления.
PM MAIL   Вверх
уни
Дата 8.10.2010, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



smartov, вы не ответили на мой вопрос. В чём трудность-то?

Где бред-то Вы прямо укажите? И обосновано, обосновано. Про сионистов - это на вашей совести... я тут про мировое правительство ничего не говорил (а вот Бзежинский упоминает, это да, почитайте). Если уж вам эта тема так близка, то надо говорить не "мировое правительство", а глобальный предиктор. Это более правильное понятие. Учите мат часть.

"P.S. Таки а в чём принципиальная разница в системах управления русскими и американскими городами?"

В русских городах живут русские люди, а в штатах живут штатовцы. Управляют русскими городами русские люди, а в штатах - штатовцы.
Системы управления в России основаны на ГОСТах, в США - на своих нормах государственного стандарта.

Shaggie, у вас видимо отсутствует высшее образование, раз вы таких элементарных вещей не знаете.
Вот вам ссылка: http://ru.wikipedia.org/wiki/ГОСТ
(обратите внимание на все разделы, которые охватывают эти стандарты)
Сначала читаем, потом думаем, потом задаём вопросы. Наша русская система управления должна основываться на наших же ГОСТах. Если Вы тут скажите, что это не так... ну тогда я уж не знаю... видимо вы гуманитарий или девушка.
Как известно, все ГОСТы написаны на русском языке. Имейте это в виду. Поэтому я и говорю, что ТЗ будет написано на русском для таких систем. Протоколы обмена между частями должны иметь основу - русский язык. Тогда ГОСТы будут гармонично работать в системе управления как единое целое.

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

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

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

У Вас тут у всех винда русифицированная. А почему? Потому что конечному пользователю будет затруднительно ею пользоваться, будь она на английском. Если не так - переходите на английскую smile Слабо? Конечно слабо. И вы знаете почему. (серверы? нее, мы про статистическое большинство, а сервер вообще сам по себе крутится).

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

Не занимайтесь самообманом и не тормозите... smile

Это сообщение отредактировал(а) уни - 8.10.2010, 13:57
PM MAIL   Вверх
smartov
Дата 8.10.2010, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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




 ! 
smartov
уни, я последний раз настойчиво прошу следовать нормам правил. 

Цитата(уни @  8.10.2010,  13:53 Найти цитируемый пост)
раз вы таких элементарных вещей не знаете

Цитата(уни @  7.10.2010,  16:15 Найти цитируемый пост)
 Мозг ещё остался у вас?

Цитата
не тормозите


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

---

По теме. Я не могу понять о каких трудностях вы меня спрашиваете, поэтому ответить на вопрос не могу. 

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

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

Далее касательно языка интерфейса. Я снова прошу вас закрыть эту тему. Тема языка интерфейса здесь не рассматривалась. При чем тут язык интерфейса до языка программирования? У них общего, как у морских свиней и обычных. Форум написан на PHP, а язык интерфейса - русский. Ну и при чем тут одно до другого? 
Несомненно с точки зрения интерфейса проще воспринимать информацию на родном языке. С этим спорить нет причин! Но программа - не человеческий язык и тут работают другие правила.

И да. Windows у меня английская. И Linux тоже. И MacOS. По той же причине, по которой языки программирования базируются на английском: мне, как человеку, работающему с машинами на уровне разработчика, а не пользователя, так проще - это универсализация. 
PM MAIL   Вверх
уни
Дата 8.10.2010, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



"Одно я вижу точно: по моему мнению, вы путаете язык общения и язык программирования."

Я ничего не путаю. Машина выполняет инструкции в бинарном виде. Человеку трудно описывать эти управляющие конструкции на машинном языке, поэтому языки все стремятся к ОБРАЗНОСТИ, тем самым делая возможным естественный для человека ТВОРЧЕСКИЙ процесс в этой работе.

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

Это безграмотное утверждение. Это всё равно, что сказать: человек должен мыслить как машина, чтобы его код работал корректно.
Вы знаете к какому поколению относится парадигма ООП в общем ходе истории языков программирования? От чего всё время уходили создатели языков программирования? Они уходили от тех самых "машинных правил" при построении языков к грамматическим правилам, к образности языка. По буквам читайте: ОБЪЕКТНО ОРИЕНТИРОВАННЫЙ, ГРАММАТИКА ЯЗЫКА. А возьмите экспертные системы. Какие там машинные правила в языке? smile расширяйте кругозор. А промышленные языки программирования? Там вообще Теория автоматического управления и автоматы в образах.

Можно не менять, а постепенно переходить, тем более сейчас это доступно и возможно для любого программера. Практически везде компиляторы поддерживают уникод, поэтому можно писать для ВНУТРЕННЕГО РЫНКА, а также для обучения программированию как таковому на русском языке.

"Далее касательно языка интерфейса. Я снова прошу вас закрыть эту тему. "

Покажите, где я её открывал smile тогда подумаем вместе что делать.

"И да. Windows у меня английская. И Linux тоже. И MacOS."

Слушаем остальных.
PM MAIL   Вверх
Sartorius
Дата 8.10.2010, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(уни @  8.10.2010,  17:45 Найти цитируемый пост)

Слушаем остальных. 
 
Win7 англ./ Ubuntu англ.

ЗЫ
 Не кормите тролля. Столько оффтопа в теме уже

PM MAIL ICQ   Вверх
уни
Дата 8.10.2010, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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

Удобен тот язык, который позволяет записать объекты внешнего мира в естественных образах носителя этнического языка. Это стало возможным в полной мере только с появлением языков пятого поколения, основанных на ООП. Но носитель английского языка заведомо в выигрыше по сравнению с носителем любого другого, т.к. язык программирования содержит в себе в своих языковых конструкциях образы родного для него языка. Также и библиотеки .Net или другие стандартизованы в английском варианте. Всё это даёт возможность одним естественно входить в сферу IT и передавать знания от поколения к поколению без посредников, другим же нужно время на обучение, чтобы войти в эту сферу. Это одна из причин  доминирования англоязычных стран (в частности, Израиля того же) в компьютерных сферах.

Т.е. нужно понимать, что кроме ООП ещё есть фактор восприятия в образах именно носителя этнического языка. Дело тут не только в коде, но и во документации (MSDN), в книгах, в форумах, в дополнительном инструментарии, а что самое главное - в науке.

Сейчас издаётся "Книга дракона". У меня есть первое издание на русском. Кто знает когда было первое издание этой книжки на английском? Сравните разницу во времени. А это уникальная книга для тех людей, кто хочет освоить следующий шаг в профессии программиста - написание своего интерпретатора (компилятора, транслятора и т.п.). Вы где-нить видели переводную литературу по построению и работе с компиляторами компиляторов? А это двигатель прогресса в IT, кто не знает, т.к. умение написать свой язык и сделать для него компилятор по всем правилам науки - тот может диктовать правила и устраивать стандарты.... писать всякие perl'ы, personal home page и прочие вещи.

Вот и думайте.... кто тут тролли. Мне лишь нужно было дать информацию к размышлению на всех форумах, которые выдал Яндекс по запросу "русский язык программирования". И я дал.
PM MAIL   Вверх
alexvs11
Дата 8.10.2010, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


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

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



Цитата

Это безграмотное утверждение. Это всё равно, что сказать: человек должен мыслить как машина, чтобы его код работал корректно.

существуют различные подходы в алгоритмизации, далеко не всегда задача сводится к моделированию того, как человек решал бы эту задачу
Цитата

Вы знаете к какому поколению относится парадигма ООП в общем ходе истории языков программирования? От чего всё время уходили создатели языков программирования? Они уходили от тех самых "машинных правил" при построении языков к грамматическим правилам, к образности языка. По буквам читайте: ОБЪЕКТНО ОРИЕНТИРОВАННЫЙ, ГРАММАТИКА ЯЗЫКА.

судя по тому как ваши посты направлены в сторону "кодерства", а не "программирования", какого черта это нужно знать?  smile
а раз уж вы с десятью дипломами знаете про грамматики формальных языков, то опять же, формальные и живые языки имеет больше различий, чем сходств 
Цитата

 А возьмите экспертные системы. Какие там машинные правила в языке? smile расширяйте кругозор. А промышленные языки программирования? Там вообще Теория автоматического управления и автоматы в образах.

ок, при чем ТАУ и русский язык?

 smile

Добавлено через 55 секунд
Sartorius, пускай, так сказать доставляет smile 
PM MAIL   Вверх
bems
Дата 8.10.2010, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



У меня ураинская винда. Даешь мне украинскую дельпхи. 


--------------------
Обижено школьников: 8
PM MAIL   Вверх
smartov
Дата 8.10.2010, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



уни
FYI: Вы можете цитировать сообщения оппонентов, выделив нужный текст и кликнув ссылку "Быстрая цитата" над тем сообщением, в котором выделили кусок.

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

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

Цитата(уни @  8.10.2010,  16:45 Найти цитируемый пост)
Это безграмотное утверждение. Это всё равно, что сказать: человек должен мыслить как машина, чтобы его код работал корректно.

Ха-ха! Смешная ситуация. Если для вас это безграмотное утверждение, то я с ним полностью согласен. Только поправка: машина думает своими компонентами, они не всязаны с языком программирования. А человек должен уметь думать, как компилятор. Именно это и отличает программиста, от обычного человека. Программист умеет, оперируя ограниченным набором операций, добиваться цели. Он знает почему набор ограничен этими, почему их достаточно, как их правильно компоновать. Он сам на основе этого набора создает новые операции. Он мыслить критериями машины. Он не может мыслить критериями "взять переменную X в левую руку..."

Цитата(уни @  8.10.2010,  16:45 Найти цитируемый пост)
Они уходили от тех самых "машинных правил" при построении языков к грамматическим правилам, к образности языка. 

Грамматические правила тут не при чем. Они уходили к образности для облегчения структурирования кода. Тем не менее никакого реального образа "Объекта одиночки" не существует. ГРааматику вы тут лепите как горбатого до стенки. Как студент в анекдоте, выучили про вшей, и кругом их пихаете.

Цитата(уни @  8.10.2010,  16:45 Найти цитируемый пост)
"Далее касательно языка интерфейса. Я снова прошу вас закрыть эту тему. "

Покажите, где я её открывал  тогда подумаем вместе что делать.

Вы её открыли задав вопрос про то, на каком языке у нас Windows.

Добавлено через 1 минуту и 7 секунд
Цитата(уни @  8.10.2010,  18:16 Найти цитируемый пост)
одна из причин  доминирования англоязычных стран (в частности, Израиля того же) в компьютерных сферах

Вы себя слушаете вообще?? А чем тогда Россия не англоязычная страна? Или Украина?

Добавлено через 2 минуты и 27 секунд
Цитата(уни @  8.10.2010,  18:16 Найти цитируемый пост)
Вот и думайте.... кто тут тролли. Мне лишь нужно было дать информацию к размышлению на всех форумах, которые выдал Яндекс по запросу "русский язык программирования". И я дал. 

А вставил этот текст в сервис "перевода в языка спамеров" и выдало "Мне нужно было лишь посаморекламироваться и расставить ссылочки на пару ресурсов."

PM MAIL   Вверх
уни
Дата 8.10.2010, 23:54 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




Модератор: Сообщение скрыто.

PM MAIL   Вверх
уни
Дата 9.10.2010, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пример программирования на русском языке в Mathcad 14:
http://files.mail.ru/3HYXS4

Там в архиве 2 pdf файла: интерпретатор математических выражений и алгоритм рисования неявных поверхностей.
Кроме прочего, я один из немногих в России профессионально владеющий Mathcad'ом (причём я умею пользоваться не только им).

Мой аватар - решение нелинейного уравнения, построенного в Mathcad:
Код

1 + ( ( ( x - 0.61 * cos( 0.5 * Pi * x ) )^2 + ( y - 0.61 * cos( 0.5 * Pi * y ) )^2 - 0.9 )^2 + ( 2 * z )^2 ) * ( ( ( x^8 + y^8 + z^8 ) * 0.4^8 )^6 - 1 ) = 0


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

         CLIPS (V6.22 06/15/04)
CLIPS> 
(deftemplate человек "Пример шаблона"
(slot имя)
(slot возраст)
(slot глаза-цвет)
(slot волосы-цвет))
CLIPS> 
(assert (человек (имя "Мезенцев Вячеслав Николаевич")
(возраст 27)
(глаза-цвет карие)
(волосы-цвет чёрные)))
<Fact-0>
CLIPS> (facts)
f-0     (человек (имя "Мезенцев Вячеслав Николаевич") (возраст 27) (глаза-цвет карие) (волосы-цвет чёрные))
For a total of 1 fact.
CLIPS> 


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

Это сообщение отредактировал(а) уни - 9.10.2010, 02:45
PM MAIL   Вверх
tararataka
Дата 9.10.2010, 07:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



уни
Цитата

Удобен тот язык, который позволяет записать объекты внешнего мира в естественных образах носителя этнического языка.

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

Вот скажем слышу я "полиморфизм" - и мне в голову приходят конкретные механизмы в известном мне языке.
А если я услышу "изменчивость" - мне почему-то приходит в голову осень, лягушки, какие-то поговорки и присказки.
PM MAIL   Вверх
уни
Дата 9.10.2010, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



tararataka, я отвечу просто ;) и с юмором. Покажите мне жалобы английских программеров, которые просто изнывают от того... о чём вы тут написали. Где они описывают свои жуткие трудности от пересечения областей?

Лично я вижу, что всё как раз с точностью до наоборот. Они даже не знают о тех трудностях, которые имеем мы при обучении, передачи знаний, переводах и пр. и пр. Их это просто не волнует. Единственно, чем они озаботились, так это уникодом, да и то только для того, чтобы интерфейсы были приятны на вид в других государствах. Кто сделал поддержку уникода в компиляторах - молодец. Это изменит историю.
PM MAIL   Вверх
smartov
Дата 9.10.2010, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



уни, за неоднократное игнорирование правил и предупреждений модератора вы отправляетесь в Read-Only на 3 дня.
Дискуссию с вами придётся прекратить по причине того, что вашими аргументами являются исключительно домыслы и оскорбления. 
У всех остальных тоже только домыслы, исследований на эту тему, похоже, не проводилось, но остальные участники не заявляют их столь безаппеляционно и с оскорблением собеседников.
PM MAIL   Вверх
bems
Дата 9.10.2010, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



Почему у остальных домыслы? Опыт же.



--------------------
Обижено школьников: 8
PM MAIL   Вверх
smartov
Дата 10.10.2010, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



Цитата(bems @  9.10.2010,  15:44 Найти цитируемый пост)
Почему у остальных домыслы? Опыт же.

Ну потому что доказанный факт предполагает проведение широкого научного исследования. Опыт может быть обманчив.
PM MAIL   Вверх
neutrino
Дата 29.11.2010, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

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



Цитата(tararataka @  9.10.2010,  06:35 Найти цитируемый пост)
Напротив. Русским очень повезло, что в программировании они используют не родной язык. Каждая специализированная область совершенно естественным образом формирует свой язык. У горняков свои слова, у железнячников свои. Это как разные пространства имён в с++. Чем менее пересекаются термины из разных областей, тем меньше возникает путаницы.

Вот скажем слышу я "полиморфизм" - и мне в голову приходят конкретные механизмы в известном мне языке.
А если я услышу "изменчивость" - мне почему-то приходит в голову осень, лягушки, какие-то поговорки и присказки. 

ППКС. Абсолютно согласен. В МАМРАМе (программистской воинской части Армии Обороны Израиля) есть свой ЯП, основанный на иврите (даже справа налево).

Пипец полный. Все кого я знаю кто с ним работал, плюются и не могут сдержаться, чтобы не покрыть матом изобретателя. Особенно коренные израильтяне, которые слова на привычном иврите связывают с житейскими образами. 
Цитата(уни @  9.10.2010,  09:50 Найти цитируемый пост)
Лично я вижу, что всё как раз с точностью до наоборот. Они даже не знают о тех трудностях, которые имеем мы при обучении, передачи знаний, переводах и пр. и пр.

Х.З. О каких трудностях вы тут говорите? У меня например понятия на английском сразу парсятся в программисткие даже не проходя лексический анализатор. Посему думаю англоязычным программистом не так удобно. Конечно после опыта в несколько лет разница может и незаметна. Но по началу я уверен, не англоязычному студенту учить ЯП легче.
Цитата(уни @  9.10.2010,  09:50 Найти цитируемый пост)
Покажите мне жалобы английских программеров, которые просто изнывают от того... о чём вы тут написали. Где они описывают свои жуткие трудности от пересечения областей?

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


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
san46
Дата 2.1.2011, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

Цитата
доказанный факт предполагает проведение широкого научного исследования

Конечно, требующегося широкого исследования не было, но было вот что.
С конца 80-х "запал" на Паскаль и с тех пор (сами понимаете сколько времени) только и "сижу" на Паскале (сейчас Delphi).
Не стал бы про это здесь говорить, если бы не одно обстоятельство.
В начале 95-года несколько ребят (и я в их числе) сделали инструментарий для разработки учетных задач (понятно, что был DOS, только в 2002 был переделан под винду).

Совсем не помню по какой причине, но ЯП в этой разработке весь на русском (вру, пара-тройка функций на латинском: типа ExportToExcel, но, скорее всего, из-за лени; нажать на Ctrl+Shift в этот момент, чтобы переключить раскладку клавиатуры, оказалось нелегким делом).
Вот и представьте себе, инструмент часто дорабатывался и обновлялся, т.е. кодинг на Паскале, но параллельно разрабатывались проекты на упомянутом инструменте.
Постоянно переключаться с Паскаль на русско-язычный ЯП вначале было не привычно.
Но т.к. такое переключение было, практически, каждый день, то очень быстро свыклись.
Как выглядит код в таком языке (в оригинале с синтаксической подсветкой):
Код

функция ИзменилосьПоле_Вид
переменные
  число СП, СР;
  дата Д1, Д2;
начало
  Д1 := НачалоМесяца(Мес); Д2 := КонецМесяца(Мес); 
  СП := СуммаПоля(Документ := сМС, Сумма = 1, Вид = 0, Д <= Д);
  СР := СуммаПоля(Документ := сМС, Сумма = 1, Вид = 1, Д <= Д);
  Остаток := СП - СР;
  МесПрих := СуммаПоля(Документ := сМС, Сумма = 1, Вид = 0, мес >= Д1, Д <= Д);
  МесРасх := СуммаПоля(Документ := сМС, Сумма = 1, Вид = 1, Мес >= Д1, Д <= Д);

  если Не Редактирование то
    если Вид = 0 то 
      Остаток := Остаток + Сумма;
      МесПрих := МесПрих + Сумма;
    иначе 
      Остаток := Остаток - Сумма
      МесРасх := МесРасх + Сумма
    конец
  конец
конец

А что? Очень мило. Смешновато, конечно для любого программера, который пишет только на англо-язычных ЯП. 
Да и окончания имен функций бывает не согласуются в конструкции "если", "пока" и пр. О чем говорил автор темы в своем первом посте.
Может быть привык к нему за 16 лет. Фиг, знает. Заметили,  в языке уши паскалевские торчат.

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


Это сообщение отредактировал(а) san46 - 2.1.2011, 10:42
PM MAIL   Вверх
Oskaria
Дата 23.11.2011, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вернусь к теме последнего поста: 

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

Приведу простейший пример - когда мы общаемся друг с другом, мы можем использовать разные слова, разные обороты речи, слова-паразиты и т.п.. 
В программировании нас учили работать без перевода тех слов, которые мы используем. Нам сказали - "хочешь проверить какое-то условие? Используй if. Хочешь обработать поток (к примеру) используй while." Жёстко и чётко.

Сложно объяснить, короче я уверен что будут ошибки скорее морфологические, ежели грамматические.


Если такой язык и писать, то думаю, он подойдёт только для школ, что бы помогать младшеклассникам осваивать арифметику и алгебру, какие-то сложные для восприятия формулы.
PM MAIL   Вверх
LSD
Дата 1.2.2013, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15709
Регистрация: 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.8582 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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