![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() ![]() |
![]() |
Altair |
![]()
Сообщение
#21
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
![]() -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
xds |
![]()
Сообщение
#22
|
![]() N337 ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата гото - конструкция, интегрируемая из асма О, боже!.. Цитата А не советуют ее применять идеологи ГРАМОТНОГО ПРОГРАММИРОВАНИЯ =) Я нарушил великую заповедь. Каюсь! ![]() ![]() ![]() -------------------- The idiots are winning.
|
Digitalator |
![]()
Сообщение
#23
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 247 Пол: Мужской Репутация: ![]() ![]() ![]() |
Я уже писал - если у нас оптимизацомания, то пишем на асме, а если нет - то берем пас без всяких goto и пишем нормальную прогу. Если че современные процы с их архитектурой оптимизировны под языки высокого уровня, и их алгоритмы предсказания и конвейеры работают куда быстрее без дополнительных, не предусмотренных структурой языка, джампов.
Цитата А что же такое "суррогатный язык"? Вы не знаете что значит слово суррогат? Цитата Мы пишем не только примеры для статей и книжек, но еще и практически используемые приложения. И что из этого? скажите пжлста какие вы написали практически используемые приложения, в которых использование goto было большим облегчением работы? Я вообще не вижу чем структурированый код сложнее для написания и понимания, кода с goto.... а если вы пишите большие циклы/условия большой вложености, то ипользование goto будем нарушать видимую структуру. Если вам так уж нужно сделать какой-то сверх-сложный и запутаный алгоритм, то можете использовать case-структурное програмирование без всяких goto -------------------- |
Altair |
![]()
Сообщение
#24
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
В принципе я согласен с Digitalator, видимо у него есть опыт написания больших систем, чего нет скажем у меня еще...
![]() -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
APAL |
![]()
Сообщение
#25
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
Digitalator
Цитата ...современные процы с их архитектурой оптимизировны под языки высокого уровня... Ничего не путаешь? Может все таки "низкого уровня"? <_< Никогда не слышал, чтобы процы были оптимизированы под Паскаль или C... -------------------- |
Altair |
![]()
Сообщение
#26
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
наверное он имеет ввиду,ч то современные процы умеют предсказывать ветвления и делать прочую предобработку...
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
APAL |
![]()
Сообщение
#27
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
Это "предсказание" используется не только в современных процах. Это было с самого начала.
Если не ошибаюсь, в архитектуре CISC+RISC процов .... надо попробовать старые конспекты найти... К тому же, считаю это бредом про оптимизацию для высокоуровневых языков. Это утверждение было бы более правильным по отношению к компиляторам, которые и переводят все в машинный код. -------------------- |
Altair |
![]()
Сообщение
#28
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Хм....
ну вобщем конечно оптимизация под высокий уровень ... <_< это что-то не то. Ведь команды языка высокого уровня это набор команд низкого и компиляторы все по разному переводят их ... так что возможно он не прави в этом.. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
xds |
![]()
Сообщение
#29
|
![]() N337 ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Никогда не слышал, чтобы процы были оптимизированы под Паскаль или C... Такая ситуация наблюдалась в конце 70-х - начале 80-х годов XX века. Например в процессорах мини-ЭВМ семейства VAX от DEC одной инструкцией были реализованы не только пролог функции и копирование строки символов, но и операции с односвязным списком. Вот пример одной из команд этой архитектуры: INDEX <b>, <l>, <h>, <s>, <i>, <a> - вычисление адреса элемента массива (<b> - адрес массива, <l> и <h> - границы индекса, <s> - размер элемента, <i> - индекс элемента, <a> - место, куда будет помещён результат). Операции С "++" и "--" - не что иное, как режим адресации с инкрементом/декрементом - характерная черта системы команд PDP (именно на этой архитектуре родился указанный язык). Для такого подхода существовали вестские причины: дело было на заре теории трансляции, недостаток вычислительных мощностей не позволял реализовывать достаточно гибкие алгоритмы оптимизации. Желание помочь разработчикам компиляторов было оправдано. Сегодня мы имеем ситуацию, противоположную указанной. Производители процессоров не стремятся "заточить" систему команд под ЯВУ: задача оптимизации генерируемого кода практически полностью перешла в руки разработчиков компиляторов. В x86 только две инструкции были добавлены исключительно на благо ЯВУ: это ENTER и LEAVE (пролог и эпилог, функции; ни та, ни другая не используются в BP). Современные аппаратные средства оптимизации расcчитаны на повышение эффективности выполнения произвольного (в смысле источника генерации, но не семантики) кода. -------------------- The idiots are winning.
|
APAL |
![]()
Сообщение
#30
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
Т.е. о "современных процах" речь даже не идет...
Так что же имел в виду Digitalator ??? -------------------- |
Digitalator |
![]()
Сообщение
#31
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 247 Пол: Мужской Репутация: ![]() ![]() ![]() |
На самом деле именно языки Паскаль, Си и им подобные я и имел ввиду...
Если посмотреть повнимательней, то на выходе компиллятора структурный код if, while, case и т.д. почти идентичны (ну одна фирма делает как никак), современные процессоры Intel P3/4 или AMD k7 имеют сложные и большое количество конвейров и алгоритмы предсказания ветвлений, а т.к. последние много лет разработка приложений ведется в основном на Си и Паскале, их алгоритмы предсказания улучшались в соответсвии и с ними. PS: Еще одна мысль про гото: при использование этой штуки, наша программа/подпрограмма перестает быть функцией в математическом понимании. -------------------- |
Digitalator |
![]()
Сообщение
#32
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 247 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот что в институте проходят по этому поводу
Цитата Цель курса - дать представление об различных подходах, используемых при создании современных ЭВМ. Основное внимание уделяется традиционным архитектурам (CISC и RISC). Рассматриваются взаимосвязи архитектуры и компиляторов языков высокого уровня. -------------------- |
Rothmans |
![]()
Сообщение
#33
|
![]() Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
Если рассматривать программу вцелом, то применение локального GOTO оставит её функцией. Любой цикл - комбинация GOTO и IF (jz например). Явный переход иногда полезен при отладке. Но даже в BASIC для красоты стараются делать GOSUB. А программирование, для многих - эстетическое наслаждение.
Под языки высокого уровня оптимизируются не процессоры, а компиляторы. Та же Intel их регулярно выпускает.
и, вроде, не длинно. |
Rothmans |
![]()
Сообщение
#34
|
![]() Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
Sorry, ошибочка. Под until не :=, а = конечно.
|
volvo |
![]()
Сообщение
#35
|
Гость ![]() |
Rothmans
А кнопка "Редактировать" зачем? :D |
Rothmans |
![]()
Сообщение
#36
|
![]() Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
Любую задачу можно решить разными путями. "Редактировать" вовремя не заметил, поэтому выпустил патч.
![]() |
Digitalator |
![]()
Сообщение
#37
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 247 Пол: Мужской Репутация: ![]() ![]() ![]() |
попробуйте записать с помощью обычных математических записей функцию содержащую goto. Без него любую функцию можжно представить конечным числом математических выражений.
ЗЫ: j перед вторым repeat-ом обнулять нада ![]() Сообщение отредактировано: Digitalator - 18.11.2004 1:39 -------------------- |
Atos |
![]()
Сообщение
#38
|
![]() Прогрессор ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 602 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Цитата(xds @ 5.11.04 15:54) Применение goto оправдано при выходе из нескольких вложенных циклов: for i := 1 to n do
Имхо, примерно то же самое и по размеру, и по читабельности... В принципе, в таких простых случаях можно и goto ставить, если уж так нравится. |
GoodWind |
![]()
Сообщение
#39
|
![]() Автооответчик ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
ИМХО паскаль программа с goto - уже Бейсик-программа
![]() -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 12:02 |