powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Программирование на Русском Языке!
25 сообщений из 301, страница 10 из 13
Программирование на Русском Языке!
    #36889440
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLoБлин, трудно это рассматривать без примера :(
Я не хочу думать над глупостями. Смысл goto в том чтобы исключить проверки флажков выхода из каждого цикла. Ни цикл с while ни цикл repeat until не решают этой проблемы.
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #36889460
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonXDiaBLoБлин, трудно это рассматривать без примера :(
Я не хочу думать над глупостями. Смысл goto в том чтобы исключить проверки флажков выхода из каждого цикла. Ни цикл с while ни цикл repeat until не решают этой проблемы.
Не, очень даже приятно в такой ситуации иметь goto, я согласен.
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #36889474
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLoОткрыть сзади дверцу, откуда вылезет толпа импов, и ты окружён.
Для этого нужно пространство, где они будут тусоваться. Оно видно на карте вместе с тонкой стеной.
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #36889503
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerXDiaBLoОткрыть сзади дверцу, откуда вылезет толпа импов, и ты окружён.
Для этого нужно пространство, где они будут тусоваться. Оно видно на карте вместе с тонкой стеной.
Ты всё время со включенной картой бегал? А там некогда будет втыкать карту, надо фигачить тех импов что спереди.
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #36889528
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLoТы всё время со включенной картой бегал?
Я имел представление о том, что меня окружает. И фигачить импов спереди не к спеху, я же сказал - место безопасное.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Программирование на Русском Языке!
    #37982587
Интересная ведь тема, однако тишина.
И мне интересен вопрос восприятия англоговорящими программистами текста программ на английском.
Если посмотреть на реально существующие реализации на русском языке, то как-то оптимизма не добавляет.
Был к примеру Бэйсик на русском на древних ЭВМ.
Или вот формулы в Excel(тот бейсик тоже крут :) ), или жутики 1С.
Допустим эти системы не имеют каких-то проблем с переводом, т.е. переведено всё идеально и русский язык годен для этих целей(не сомневаюсь).

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

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

Из серии go to - иди на ...

Заменим под спойлером еще switch, case , throws Exception, Integer, return, public, char, else if, then, break, new ....

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

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

Вопрос в том, - а вот бедные англоговорящие также мучаются(даже с нормальным кодом, не аля 1С или чудные СРЗНАЧА формулы в excel :


ПОДСТАВИТЬ, СРЗНАЧА, ДСТАНДОТКЛП,ЛОЖЬ, ЧИСЛСТОЛБ, ОКРВНИЗ, ЕПУСТО, ЕОШИБКА, ЕЧИСЛО, УРЕЗСРЕДНЕЕ, ДСРЗНАЧ, БСЧЁТ, БИЗВЛЕЧЬ, ДСТАНДОТКЛП, БДДИСП, ЧИСТРАБДНИ, НАКОПДОХОД, ДНЕЙКУПОНДО, БЗРАСПИС, ДОХОДПЕРВНЕРЕГ ....

хотя вроде их не с улицы люди переводили, т.е. это лучшие КОММЕРЧЕСКИЕ экземплярчики попыток локализации.


Тут были подобные сообщения(ниже).

А вот тот текст программы с русским в именах переменных:

Вячеслав Мезенцев+
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
    public ОбразРезультата операторSTACK( ОбразРезультата вектор, ОбразРезультата элемент ) throws Exception {
        Integer тип = ( Integer ) вектор.Тип.elementAt(0);
        ОбразРезультата Результат = null;

        switch ( тип.intValue() ){
            case ТИП_СКАЛЯР:
            case ТИП_СТРОКА:
            case ТИП_ВЕКТОР_1x1:
                Vector врм = new Vector();
                врм.addElement( вектор );
                врм.addElement( элемент );
                Результат = new ОбразРезультата( 2, 1, врм );
                break;
            
            case ТИП_ВЕКТОР_СТОЛБЕЦ:
                Vector данные = ( Vector ) вектор.Значение.elementAt(0);
                данные.addElement( элемент );
                int строк = ( ( Integer ) вектор.Размер.elementAt(0) ).intValue() + 1;
                Результат = new ОбразРезультата( строк, 1, данные );
                break;
        }

        return Результат;
    }

    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;
    }




Вопрос вот про них, про англоговорящих программистов:

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

Посмотрите еще тексты программ на 1С (прости-господи). Перлы вроде ВзятьМногоОбъектов - в порядке вещей. Понятности не добавляет.
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #37985391
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СРЗНАЧА (AVERAGEA)Вот тут Мезенцев приводит вполне структурированный текст с русскими названиями переменных.
И уже читабельность(для меня) упала.А для меня (к удивлению) возросла.
авторА теперь представим, что в этом тексте еще и заменены операторы языка.А вот это представляется излишним.
авторДобавим туда еще комментарии на русском. - Будет то, что называется - за деревьями леса не видно.Спорно. Смотря как комментировать.
авторТест вообще будет махровым для восприятия ОПЫТНЫМ программистом. Определение "ОПЫТНОГО"?
авторДумаю большинство с этим согласится, ибо мало кто сможет за адекватное время понять простой текст программы приведенной Мезенцевым, но в полностью на кириллице.
При этом мы(допустим) считаем, что перед нами идеальный код полностью без латиницы.Читаемость != "адекватное время понять простой текст программы".
Я пока читал этот код, даже не пытался его понять.
авторПОДСТАВИТЬ, СРЗНАЧА, ДСТАНДОТКЛП,ЛОЖЬ, ЧИСЛСТОЛБ, ОКРВНИЗ, ЕПУСТО, ЕОШИБКА, ЕЧИСЛО, УРЕЗСРЕДНЕЕ, ДСРЗНАЧ, БСЧЁТ, БИЗВЛЕЧЬ, ДСТАНДОТКЛП, БДДИСП, ЧИСТРАБДНИ, НАКОПДОХОД, ДНЕЙКУПОНДО, БЗРАСПИС, ДОХОДПЕРВНЕРЕГ ....За такое надо расстреливать.
авторхотя вроде их не с улицы люди переводили, т.е. это лучшие КОММЕРЧЕСКИЕ экземплярчики попыток локализации.
Что мешает локализаторам быть идиотами?
Вячеслав Мезенцев++
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
    public ОбразРезультата операторSTACK( ОбразРезультата вектор, ОбразРезультата элемент ) throws Exception {
        Integer тип = ( Integer ) вектор.Тип.elementAt(0);
        ОбразРезультата Результат = null;

        switch ( тип.intValue() ){
            case ТИП_СКАЛЯР:
            case ТИП_СТРОКА:
            case ТИП_ВЕКТОР_1x1:
                Vector врм = new Vector();
                врм.addElement( вектор );
                врм.addElement( элемент );
                Результат = new ОбразРезультата( 2, 1, врм );
                break;
            
            case ТИП_ВЕКТОР_СТОЛБЕЦ:
                Vector данные = ( Vector ) вектор.Значение.elementAt(0);
                данные.addElement( элемент );
                int строк = ( ( Integer ) вектор.Размер.elementAt(0) ).intValue() + 1;
                Результат = new ОбразРезультата( строк, 1, данные );
                break;
        }

        return Результат;
    }

    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;
    }

Русские имена переменных совершенно не мешают.
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #37986285
Фотография pureproft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё упирается в странную зацикленость на текстовом представлении исходных текстов и не только их.
Давно пора в UTF добавить раздел Алгоритмические символы и подразделы касающиеся всяких SQL,XML,...
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #37986308
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pureproftВсё упирается в странную зацикленость на текстовом представлении исходных текстов и не только их.Человек, зараза эдакая, с детства оперирует текстами. "Внутренний голос" есть, а "внутреннего процессора графов" нет.

Безусловно, средства разработки будут эволюционировать всё дальше от линейного текста и всё ближе к чистой базе знаний о предметной области и алгоритмах, но это будет довольно долгий процесс, минимум лет на двадцать растянется. Тем более что пока прогресс по этой части идёт с конца технологической цепочки --- на средствах тестирования, верификации и документирования результата он заметнее, чем на средствах собственно создания основного кода программы.
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #37986328
Фотография pureproft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rupureproftВсё упирается в странную зацикленость на текстовом представлении исходных текстов и не только их.Человек, зараза эдакая, с детства оперирует текстами. "Внутренний голос" есть, а "внутреннего процессора графов" нет.

Безусловно, средства разработки будут эволюционировать всё дальше от линейного текста и всё ближе к чистой базе знаний о предметной области и алгоритмах, но это будет довольно долгий процесс, минимум лет на двадцать растянется. Тем более что пока прогресс по этой части идёт с конца технологической цепочки --- на средствах тестирования, верификации и документирования результата он заметнее, чем на средствах собственно создания основного кода программы.
Очень даже есть но не осознан, когда то читал о исследованиях кажется Лурии больного после сквозного ранения в голову, который заново учился говорить, писать и т.д. но самое главное он потерял образное мышление сохранив личность и волю. Например такое понятие как велосипед он выводил логически анализируя составные части.
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #37986339
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pureproftiv_an_ru"внутреннего процессора графов" нет.Очень даже есть но не осознанНу то есть все равно, что его нет. Графовая "аппаратная часть" есть (собсно, другой и нет), а хорошего обработчика графов нет. Без специальных усилий в виде специально разработанного технологчиеского процесса человек не может решить даже простые задачи вроде сортировки списка из 10 вариантов по предпочтительности, даже если попарное сравнение вариантов не требует особых умственных усилий.

Скорость соображаловки у человека с IQ 100 вывода ~1 LIPS (logical inductions per second). Половина человечества лишена и этого. Какая тут может быть внятная обработка графов?
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #37986707
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pureproftВсё упирается в странную зацикленость на текстовом представлении исходных текстов и не только их.
Меня в свое время учили, что чем ближе язык программирования (ЯП) к человеческой речи, тем он мощнее.
Конечно, он не может быть *очень* близок, потому что у человеческого языка логические несовершенства - куча неоднозначностей. Тем не менее, ЯП, основанный на простейших языковых конструкциях, весьма понятен и легок для изучения. И наоборот, языки основанных на сокращении записей и на закорючках, называют брейнфаками, и с правом.
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #37986854
WPF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Семантика русского языка не подходит для емких технических терминов и операторов, а вот стихи получаются прекрасные.
Надо заметить, что это проблема не одного только русского языка, этим же недугом страдают и другие языки, например немецкий, который казалось близко подошел в качестве технического языка, но в немецкий не обладает развитой системой словообразования, поэтому английский единственная альтернатива.
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #37987345
Фотография SIMPLicity_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S.G.pureproftВсё упирается в странную зацикленость на текстовом представлении исходных текстов и не только их.
Меня в свое время учили, что чем ближе язык программирования (ЯП) к человеческой речи, тем он мощнее.
Конечно, он не может быть *очень* близок, потому что у человеческого языка логические несовершенства - куча неоднозначностей. Тем не менее, ЯП, основанный на простейших языковых конструкциях, весьма понятен и легок для изучения. И наоборот, языки основанных на сокращении записей и на закорючках, называют брейнфаками, и с правом.

буалять, программируй на Яндексе!
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #37987379
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бамп православным бояном
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #37987424
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WPFСемантика русского языка не подходит для емких технических терминов и операторовСтранно. До Фурсенко подходила. Я вам больше скажу, профессиональные математики всю вторую половину прошлого века считали полезным знать ещё и русский, читать статьи в оригинале. И на язык не жаловались, пока было кому на нём писать, и соответственно, другим было что читать.
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #37990410
Фотография AlexandrPlus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛагманБамп православным бояном


тынцем не поделишься?
плиз
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #37990568
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexandrPlus,

не, надо гуглить
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #37991045
Фотография tsyselsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YossarianЯмб, Аналитик...

Мы обращались в фирму 1С с предложением ввести в язык (речь идет о версии 6.0) следующие конструкции :

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

Почему-то фирма не прислушалась к нашему мнению...

Washington Irving

Предлагаю try/catch изобразить так
Код: sql
1.
2.
3.
4.
5.
6.
A ЧТО ЕСЛИ {
    // try
}
ОТ бл* {
    // catch
}
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #37991159
Фотография pureproft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЯМБ!!!!!
О времена, о техника!!!!
Нева 501!!!!!!! ЯМБ!!!!
Крупное транспортное предприятие учёт путевых листов этак на десятке компов одновременно!!!

....
безуспешно ищу книжку Ярошевской и прошивку ЯМБа.
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #38008165
communicay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ссылка на статью: "Русский язык и программирование": http://www.compiler.su/russkij-yazyk-i-programmirovanie.php Там вопрос о программировании с использованием русского языка рассмотрен почти во всех возможных разрезах.
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #38008277
Фотография С0ВЕСТЬ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛагманБамп православным бояном
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #38016004
guest_135
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Интересная тема. Тоже интересовался русскими языками.
Хотя это всегда критикуется, интересно было бы попрограмить на нашем. :))


Язык символического кодирования. Советский
ЯСК
http://vova1001.narod.ru/00009569.htm
http://www.banifacyj.narod.ru/IBM/history_of_computer/EBM_Minsk_Strela.htm


Аналитик
http://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D1%82%D0%B8%D0%BA_%28%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%29
Для эвм МИР
http://ru.wikipedia.org/wiki/%D0%9C%D0%98%D0%A0-2#.D0.9C.D0.98.D0.A0-2


Глагол - аналог оберона.


КуМи́р (Комплект учебных Миров или Миры Кушниренко)
http://ru.wikipedia.org/wiki/%D0%9A%D1%83%D0%9C%D0%B8%D1%80_%28%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%29


Рапира
http://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%BF%D0%B8%D1%80%D0%B0_%28%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%29


Учебный алгоритмический язык
http://ru.wikipedia.org/wiki/%D0%A3%D1%87%D0%B5%D0%B1%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA

Робик
http://ru.wikipedia.org/wiki/%D0%A0%D0%BE%D0%B1%D0%B8%D0%BA_%28%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%29


Библиотека ББФ. Для Си и Си++. Только часть на русском.
http://bbf.su


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


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


1С.
Ну этот все знают.
Язык управления платформой 1С.
Тот что реально имеет экономическую отдачу и повсеместно используется.



Еще есть форум посвященный именно русским языкам и программированию.
http://rus.24bb.ru/
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #38030816
FullZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YossarianЯмб, Аналитик...

Мы обращались в фирму 1С с предложением ввести в язык (речь идет о версии 6.0) следующие конструкции :

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

Почему-то фирма не прислушалась к нашему мнению...

Washington Irving

капец, чуть не помер аж прослезился:)
...
Рейтинг: 0 / 0
Программирование на Русском Языке!
    #38190714
ibzh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть средства литературного программирования.
Их легко приспособить для программирования на Русском языке, получая при этом исходник на языке freepascal.
Подробнее на http://ibzh.p.ht/tex/literate.htm.
...
Рейтинг: 0 / 0
25 сообщений из 301, страница 10 из 13
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Программирование на Русском Языке!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]