Re[17]: Существуют ли задачи, где использование GOTO оправда
От: romangr Россия  
Дата: 09.08.07 05:39
Оценка: 4 (2) :)
Здравствуйте, Sinclair, Вы писали:

...

S>Другая реализация применена в C# — там нет никаких отдельных методов, на которые отображается свойство:

S>
S>public class A
S>{
S>  private int _i;
S>    public int I
S>    {
S>      get { _i = value; }
S>        set { return _i; }
S>    }
S>}
S>

S>Компилятор сгенерирует пару методов, но получить к ним доступ нормальным способом не получится. Нельзя написать a.SetI(2), потому что никакого SetI нету. Увидеть эти методы можно только копаясь в байт-коде. Имена им придумывает компилятор, и конфликт с пользовательским методом получить тоже не удастся.


    public class Conflict
    {
        private int m_IntValue;

        public int IntValue
        {
            get { return m_IntValue; }
            set { m_IntValue = value; }
        }

        public int get_IntValue()
        {
            return 0;
        }
    }


?
... << RSDN@Home 1.2.0 alpha rev. 693>>
Re[18]: Существуют ли задачи, где использование GOTO оправда
От: Sinclair Россия https://github.com/evilguest/
Дата: 09.08.07 06:05
Оценка:
Здравствуйте, romangr, Вы писали:
Прикольно, не знал.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[10]: Существуют ли задачи, где использование GOTO оправда
От: unreg_flex  
Дата: 12.08.07 08:22
Оценка:
Здравствуйте, Eugeny__, Вы писали:

E__>Хз. По мне, исходный кусок отвратительно читабелен. То, что в нем меньше символов, не говорит в его пользу. Приведенный NBN код куда более структурирован, и не вызывает головной боли при прочтении, по крайней мере.


Исходный кусок написан корректно, в отличии от приведенного NBN, который теперь содержит ошибку и не эквивалентен исходному
Сможете указать где баг в этом "читабельном" коде и исправить ее?
Re[8]: Существуют ли задачи, где использование GOTO оправдан
От: unreg_flex  
Дата: 12.08.07 08:26
Оценка:
Здравствуйте, NikeByNike, Вы писали:

NBN>Лично я бы записал бы примерно в таком стиле ...


Как говорил наш препод, главное при оптимизации кода, не изменить результат его работы
Re[9]: Существуют ли задачи, где использование GOTO оправдан
От: NikeByNike Россия  
Дата: 12.08.07 11:38
Оценка:
Здравствуйте, unreg_flex, Вы писали:

NBN>>Лично я бы записал бы примерно в таком стиле ...


_>Как говорил наш препод, главное при оптимизации кода, не изменить результат его работы


Возрадуйся:
if( !EstimateContourDim3( i, j ) )
    break;

А какое это имеет отношение к стилю?
Нужно разобрать угил.
Re: Существуют ли задачи, где использование GOTO оправдано?
От: alexeiz  
Дата: 16.08.07 04:25
Оценка:
Здравствуйте, Vedrus, Вы писали:

V>Люди, кто-нибудь может привести пример, где использование GOTO оправдано? Я знаю, что существуют такие задачи, но слабо представляю, как это в живую выглядит. Вроде в синтаксических анализаторах используется, и в очень сложных математических расчётах.


V>Сейчас практически все мои знакомые программисты считают, что использование GOTO – это признак кривизны кода. Хотелось бы их разубедить.




здесь
Re[18]: Существуют ли задачи, где использование GOTO оправда
От: ionicman  
Дата: 16.08.07 04:43
Оценка:
R> public class Conflict
Нда... прикольно. тоже не знал такого
Re[6]: Существуют ли задачи, где использование GOTO оправдан
От: Sergey Россия  
Дата: 16.08.07 08:20
Оценка:
> V>Вопрос не в том, что препод лох. Он мне аргументированно объяснил. Препод математик, и очень хорошо разбирается в структурном программировании. Бывает объективная необходимость во включении GOTO, для увеличения быстродействия. Мне бы хотелось услышать ответы от тех, кто считает, что GOTO имеет право на жизнь с конкретными примерами. Остальные не обижайтесь, но не надо писать сюда.
>
> здесь пример кода с xml парсером, где GOTO оператор имеет право на жизнь (см. функцию ExtractXMLFragmentFromStream). если в двух словах, то в цикле while крутится логика, которая анализирует текущее состояние парсера, и при помощи GOTO значительно увеличивается скорость парсинга.

И насколько оно будет медленнее, если вместо goto там написать просто break?
Posted via RSDN NNTP Server 2.1 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[2]: Существуют ли задачи, где использование GOTO оправдан
От: Cyberax Марс  
Дата: 16.08.07 13:11
Оценка: :)
Здравствуйте, alexeiz, Вы писали:

A>

A>здесь
Ага, вот так выглядит Gotozilla.
Sapienti sat!
Re[2]: Существуют ли задачи, где использование GOTO оправдан
От: Пётр Седов Россия  
Дата: 16.08.07 18:10
Оценка:
Здравствуйте, alexeiz, Вы писали:
A>(комикс с goto и динозавром)
Странно, я иногда использую goto, со мной такого не случалось . Наверное, не стоит делать goto JurassicPark .
Пётр Седов (ушёл с RSDN)
Re[3]: Существуют ли задачи, где использование GOTO оправдан
От: Eugeny__ Украина  
Дата: 16.08.07 18:43
Оценка: +1
Здравствуйте, Пётр Седов, Вы писали:

ПС>Здравствуйте, alexeiz, Вы писали:

A>>(комикс с goto и динозавром)
ПС>Странно, я иногда использую goto, со мной такого не случалось . Наверное, не стоит делать goto JurassicPark .

Странно, я уже сколько лет программирую, и ни разу не было ситуации, где бы я хотел применить goto. Разве что правда, в мат алгоритме, который, по совместительству еще и узкое место... Но таких вещей не попадалось, обычно узкое место было сооовсем другое...
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[3]: Существуют ли задачи, где использование GOTO оправдан
От: Cyberax Марс  
Дата: 16.08.07 21:28
Оценка:
Здравствуйте, Пётр Седов, Вы писали:

ПС>Здравствуйте, alexeiz, Вы писали:

A>>(комикс с goto и динозавром)
ПС>Странно, я иногда использую goto, со мной такого не случалось . Наверное, не стоит делать goto JurassicPark .
Твои дни сочтены! Я бы на твоем месте немедленно начал защищать дом от рапторов.

Говорят, что виноградный сок может помочь: http://www.seopher.com/articles/velociraptors_are_jaded_by_grape_juice_xkcd_com_
Sapienti sat!
Re[4]: Существуют ли задачи, где использование GOTO оправдан
От: unreg_flex  
Дата: 18.08.07 11:03
Оценка:
Здравствуйте, Eugeny__, Вы писали:

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


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

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

...

Это так, к слову.
Все зависит от области в которой вы работаете, и именно эта область зачастую определяет
возникновение или не возникновение определенных ситуаций.
Я тоже много лет программирую, и на целую огромную библиотеку у меня возникло всего 2-3 участка кода где есть гото.
Но это вовсе не значит, что нужно бросаться и вырезать их оттуда любой ценой.
Re: Существуют ли задачи, где использование GOTO оправдано?
От: Bigger Российская Империя  
Дата: 18.08.07 14:14
Оценка:
Здравствуйте, Vedrus, Вы писали:

V>Люди, кто-нибудь может привести пример, где использование GOTO оправдано? Я знаю, что существуют такие задачи, но слабо представляю, как это в живую выглядит. Вроде в синтаксических анализаторах используется, и в очень сложных математических расчётах.


V>Сейчас практически все мои знакомые программисты считают, что использование GOTO – это признак кривизны кода. Хотелось бы их разубедить.


Приходиться использовать в T-SQL

Программист — это шаман..., подарите бубен!
Re[2]: Существуют ли задачи, где использование GOTO оправдан
От: NikeByNike Россия  
Дата: 18.08.07 16:24
Оценка:
Здравствуйте, Bigger, Вы писали:

B>Приходиться использовать в T-SQL


Мне казалось разговор шёл в контексте С++'а.
Нужно разобрать угил.
Re: Существуют ли задачи, где использование GOTO оправдано?
От: x-code  
Дата: 19.08.07 21:18
Оценка:
Здравствуйте, Vedrus, Вы писали:

V>Люди, кто-нибудь может привести пример, где использование GOTO оправдано? Я знаю, что существуют такие задачи, но слабо представляю, как это в живую выглядит. Вроде в синтаксических анализаторах используется, и в очень сложных математических расчётах.


Если нужно например передать управление на адрес, например, 0x98140923, то однозначно оправдано.
Жалко в С++ так не прокатит

Я видел куски кода, где операторов goto больше чем всех остальных операторов вместе взятых. Если добавить к этому, что практически все переменные там были глобальные, их имена — сокращения на невероятной смеси транслита и английского, в которой от каждого слова вставлено 1-2 буквы, выравнивания кода нет в принципе, а комментарии используются исключительно для комментирования неработающих почему-то кусков кода... то после 10 минут работы с этим хотелось запретить не только goto, но и все не-ООП возможности С++, а ООП сделать в 100 раз строже.

Однако, здравый смысл учит нас — запрещать возможности все-же не стоит. goto не такая уж мощная и распространенная возможность языка, чтобы из-за нее спорить. К тому же, по сравнению с ассемблером операцию безусловного перехода сильно урезали, и в существующем урезанном виде goto в общем никому особо не нужен. Ведь метка — это ни что иное как константный указатель на код программы, и если бы ее можно было использовать именно в этом качестве... В С++ это уже затруднительно, не говоря уже о C# и Java; но в Си никаких препятствий не было... можно было ввести тип label и создавать переменные-метки и массивы меток.
L1:
 // code1
L2: 
 // code2
label Labels[2] = {L1, L2}; // тип label, массив меток
goto Labels[i]; // использование переменных меток

Хотя и это лишь возможность, востребованность которой все-же под вопросом. Возможно, какие-то сложные автоматы?
Насколько часто используются в современных программах массивы указателей на функции? Думаю, что не часто.
Re[3]: Существуют ли задачи, где использование GOTO оправдан
От: Bigger Российская Империя  
Дата: 21.08.07 06:09
Оценка:
Здравствуйте, NikeByNike, Вы писали:

NBN>Здравствуйте, Bigger, Вы писали:


B>>Приходиться использовать в T-SQL


NBN>Мне казалось разговор шёл в контексте С++'а.


Сорри, но из первого поста это не было видно
Автор: Vedrus
Дата: 31.07.07

Программист — это шаман..., подарите бубен!
Re[7]: Существуют ли задачи, где использование GOTO оправдан
От: игппук Беларусь  
Дата: 21.08.07 06:57
Оценка:
Здравствуйте, Sergey, Вы писали:

S>И насколько оно будет медленнее, если вместо goto там написать просто break?


break там ни к месту, если вы смотрели код внимательно.
проклятый антисутенерский закон
Re[8]: Существуют ли задачи, где использование GOTO оправдан
От: Sergey Россия  
Дата: 21.08.07 07:43
Оценка:
> S>И насколько оно будет медленнее, если вместо goto там написать просто break?
>
> break там ни к месту, если вы смотрели код внимательно.

Может я конечно что-то и проглядел, но все goto там только и делают, что осуществляют выход из switch. При этом я не обнаружил ни одного места, где goto были бы во вложенных в switch циклах. Так что лучше просто скажите, где конкретно break там не подходит?
Posted via RSDN NNTP Server 2.1 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[9]: Существуют ли задачи, где использование GOTO оправдан
От: игппук Беларусь  
Дата: 22.08.07 14:21
Оценка:
Здравствуйте, Sergey, Вы писали:

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