Автор Тема: Об алгоритмах...  (Прочитано 1824 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Samat

  • Гость
Re: Об алгоритмах...
« Ответ #20 : Февраля 02, 2015, 06:48:20 pm »
@ kwlw

Какой вывод сделали? ...я лично в этом деле, а Вы?

Peratron

  • Сообщений: 13579
  • GTLab - forever!
    • Просмотр профиля
    • E-mail
Re: Об алгоритмах...
« Ответ #21 : Февраля 02, 2015, 06:54:27 pm »
Цитировать
чтобы в ромбиках записывать те же самые операторы цикла - это двойная работа,
Ромбики сами по себе являются операторами - а записывать в них надо параметры конкретного процесса.
И только.

Цитировать
Вопрос, а как Вы вообще рисуете блок-схему? ...не просто же как рисунок, а потом мозг понимает "о! так это алгоритм какой-то!"
Я мыслю динамическими процессами.
Подчеркну ещё раз: мыслю динамическими процессами.

Наиболее адекватно любой процесс описывается графом - поскольку является причинно-следственным по своей природе.

Блок-схема и есть именно граф - несколько стандартизированный по форме, но сохранивший все принципиальные особенности.
Главная из которых - наглядность.

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

ХИНТ: именно по этой причине успешное программирование на ЯВУ требует очень больших психических усилий по преобразованию первичного графа в строго иерархическую вложенную структуру с минимизацией количества меток.

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

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

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

Решение системных задач вообще должно решаться автоматически - без привлечения человеческого интеллекта.
Схемотехническая мантра: титцешенкохоровицехилл. Повторять до просветления...

Samat

  • Гость
Re: Об алгоритмах...
« Ответ #22 : Февраля 02, 2015, 07:17:54 pm »
@ kwlw

Вместо CopyMemory попробуйте это, поймёте о чём речь:


asm
    push esi
    push edi

    mov ecx, {длина блока}
    mov esi, {указатель на буфер}
    mov edi, {указатель на приёмник}
  @jj:
    movups   xmm0, [esi]     // буфер -> в регистр
    movups   [edi], xmm0     // приёмник <- из регистра

    add esi, 16
    add edi, 16

    dec ecx
    jnz @jj

    pop edi
    pop esi

    emms
  end;


kwlw

  • Сообщений: 2408
  • Тёплый, ламповый
    • Просмотр профиля
Re: Об алгоритмах...
« Ответ #23 : Февраля 02, 2015, 07:18:02 pm »
Цитировать
@ kwlw

Какой вывод сделали? ...я лично в этом деле, а Вы?



Sau
У меня - свой путь.

Samat

  • Гость
Re: Об алгоритмах...
« Ответ #24 : Февраля 02, 2015, 07:19:32 pm »
А словами?

Peratron

  • Сообщений: 13579
  • GTLab - forever!
    • Просмотр профиля
    • E-mail
Re: Об алгоритмах...
« Ответ #25 : Февраля 02, 2015, 07:26:06 pm »
Цитировать
Ну, так и я Вам повторю, что высокоуровневый код - не список!
А что же?

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

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

Подробности обсуждаемы здесь: http://forum.gtlab.net/cgi-bin/yabb2/YaBB.pl?num=1422201948
Схемотехническая мантра: титцешенкохоровицехилл. Повторять до просветления...

kwlw

  • Сообщений: 2408
  • Тёплый, ламповый
    • Просмотр профиля
Re: Об алгоритмах...
« Ответ #26 : Февраля 02, 2015, 07:38:51 pm »
Цитировать
А словами?

Peratron уже написал.

Sau
У меня - свой путь.

Bpjkznjh

  • Гость
Re: Об алгоритмах...
« Ответ #27 : Февраля 02, 2015, 07:41:58 pm »
Обсессия?

Samat

  • Гость
Re: Об алгоритмах...
« Ответ #28 : Февраля 02, 2015, 07:48:00 pm »
Цитировать
Цитировать
А словами?

Peratron уже написал.

Sau
Peratron про регистры не писал, я хочу знать от Вас, что означает картинка в ответ на вопрос "Какой вывод сделали?" относительно рекомендации ознакомиться с MMX и SSE? ...я не терплю слинивание в кусты когда надо держать ответ  >:(

KMG

  • Сообщений: 3776
    • ICQ клиент - 412221711
    • AOL клиент - Mike
    • Просмотр профиля
    • E-mail
Re: Об алгоритмах...
« Ответ #29 : Февраля 02, 2015, 08:24:49 pm »
Цитировать
В электронике/электротехнике есть полная аналогия программерскому интерфейсу - схему можно представить графически, а можно и в виде списка цепей.
Никоим образом не аналог, схема и список связей абсолютно всзаимосвязаны. За исключенем расположения элементов на схеме, что абсолютно не влияет на работоспособность!

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

А желание переложить свою работу на неизвестно как написанный препроцессор перевода алгоритма в код...

Я в свое время писал компилятор (препроцессор) из графического представления т.н. Ladder Diagram для программируемых промышленных контроллеров. Но! Потребоввалось это потому, что обслуживающий персонал был - электрики, а не инженеры. Квалифицированные пользователи этой опцией не пользовались.

Еще, алгоритм имеет свойство модифицироваться в процессе написания программы для увеличения ее эффективности.
Поэтому он обычно составляется (по необходимости) уже после отлаживания программы.
PS языки высокого уровня C, Pascal... являются разумным компромиссом между эффективностью и возможностью диагностики технических (не алгоритмических) ошибок.
« Последнее редактирование: Февраля 02, 2015, 08:39:06 pm от mike »

Samat

  • Гость
Re: Об алгоритмах...
« Ответ #30 : Февраля 02, 2015, 08:52:59 pm »
@ KMG

+++!

...есть профессиональные программисты на форуме! ...я думал в одиночку придётся отбиваться от "теоретиков Кунг-Фу"  ;D ...никого не хочу обидеть, если задел - простите.

Peratron

  • Сообщений: 13579
  • GTLab - forever!
    • Просмотр профиля
    • E-mail
Re: Об алгоритмах...
« Ответ #31 : Февраля 02, 2015, 09:15:39 pm »
Цитировать
А вот алгоритм (квадратики/ромбики/стрелочки) может быть реализован десятком способов с разной степенью эффективности кода.
Фишка в том, что процедура транслирования блок-схемы в код есть изначально рутинная - и не должна занимать пользователя никоим образом.

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

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

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

Моделирование объектов с нечёткой логикой решается на основе однозначных законов мат-статистики - то есть, опять же, алгоритмический граф вполне однозначен.

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

ХИНТ: само существование разных МЯ - это нонсенс!
Единственным универсальным языком является язык причинно-следственных связей - и алгоритм-граф есть наилучшая форма его реализации...

Цитировать
PS языки высокого уровня C, Pascal... являются разумным компромиссом между эффективностью и возможностью диагностики технических (не алгоритмических) ошибок.
Если подумать как следует - можно понять, что текстовый формат ЯВУ является вынужденным компромиссом между требованиями причинно-следственного моделирования и техническими средствами интерфейса между оператором-создателем и конечным кодом: в момент появления этой сущности единственной доступной технологией была технология текстового ввода с алфавитно-цифровой клавиатуры и АЦ-терминалов и печатных устройств.

С тех пор всё и зависло - несмотря на появление новых технологических возможностей в человеко-машинном интерфейсе.

И это - абсолютно ненормально.
Хотя и привычно для человеческой цивилизации.
Схемотехническая мантра: титцешенкохоровицехилл. Повторять до просветления...

Peratron

  • Сообщений: 13579
  • GTLab - forever!
    • Просмотр профиля
    • E-mail
Re: Об алгоритмах...
« Ответ #32 : Февраля 02, 2015, 09:20:07 pm »
Цитировать
...никого не хочу обидеть, если задел - простите.
Намеренность сказанного не вызывает сомнения - потому маскировочный реверанс остаётся всего лишь прикрытием чисто рангового посыла.

По первичной сути темы в посте информации - ноль...
Схемотехническая мантра: титцешенкохоровицехилл. Повторять до просветления...

Samat

  • Гость
Re: Об алгоритмах...
« Ответ #33 : Февраля 02, 2015, 09:28:49 pm »
@ Peratron

Я тоже Вас люблю, ...извините.  :-*


Самокритика тоже приветствуется.

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

Цитировать
Намеренность сказанного не вызывает сомнения - потому маскировочный реверанс остаётся всего лишь прикрытием
« Последнее редактирование: Февраля 03, 2015, 01:16:35 pm от Samat »

KMG

  • Сообщений: 3776
    • ICQ клиент - 412221711
    • AOL клиент - Mike
    • Просмотр профиля
    • E-mail
Re: Об алгоритмах...
« Ответ #34 : Февраля 02, 2015, 09:45:30 pm »
Цитировать
Фишка в том, что процедура транслирования блок-схемы в код есть изначально рутинная - и не должна занимать пользователя никоим образом.
Это было рутиной, когда использование программ (в советское время) было расчетом какой то математической задачи.
Женя, к сожалению, процессор работает не по алгоритму, а по коду, и перевод в код ЯВУ авляется творческим процессом.
Чем "выше" мы абстрагируемся в описании задачи, тем больше наладные расходы на производительность, память...
А если оставить уровень абстрагирования как для "ЯВУ", то описание алгоритма будет вообще неудобочитаемо.
Собственно поэтому и нет серьезных компиляторов из алгоритмов. Все на уровне "игрушек для электриков".

Возвращаясь на твою плоскость - схемотехники. Цифровой кремний компилится не из схем, а из VHDL, именно из за недопустимых "накладных расходов". Я в свое время разрабатывал FPGA. После альтеровского препроцессора из схемотехнического представления приходилось "ручками" править HDL код.

Jinx

  • Сообщений: 4123
    • Просмотр профиля
    • E-mail
Re: Об алгоритмах...
« Ответ #35 : Февраля 02, 2015, 10:02:12 pm »
Я, конечно, опытом похвастаться не могу - только образование профильное, поэтому я, по-видимому, не догоняю, в чем, собственно, посыл-то? То, что алгоритмы есть наше всё и так понятно. И языки, вроде, называются алгоритмическими неспроста. За историю спасибо.

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

Женя, сказал "А" - давай хоть "Б" ;)
« Последнее редактирование: Февраля 02, 2015, 10:02:42 pm от Ash »
Если хочешь, чтобы что-то было сделано хорошо - сделай сам.
R2DNY

Peratron

  • Сообщений: 13579
  • GTLab - forever!
    • Просмотр профиля
    • E-mail
Re: Об алгоритмах...
« Ответ #36 : Февраля 02, 2015, 10:05:24 pm »
Цитировать
перевод в код ЯВУ авляется творческим процессом
Я уже сформулировал: при наличии математического обоснования - технология должна быть реорганизована на отраслевом уровне и шаманство (а не "творческий процесс") должно быть из неё изгнано.

Что б не быть совсем декларативным: во времена оны при освоении нового конструкторского домена - компьютерного - я вполне осознанно сформулировал необходимые теоремы и вполне конкретно нашёл для них решение, позволяющее заниматься "программированием" не на основе шаманизма, а исключительно по строгим правилам, исключающим "творческий волюнтаризм".

С тех пор этим хозяйством и пользуюсь.

Цитировать
Цифровой кремний компилится не из схем, а из VHDL, именно из за недопустимых "накладных расходов". Я в свое время разрабатывал FPGA. После альтеровского препроцессора из схемотехнического представления приходилось "ручками" править HDL код.
Несовершенство конкретных технологий не означает фатальной невозможности иных, более строгих и однозначных решений.

ХИНТ: когда то шахматная игра служила примером "творческого превосходства" человека над машиной и большинство апологетов считало возникающее в игре разнообразие вариантов непреодолимым для машинных алгоритмов.

С того момента, как Дип Блю отодрал амбициозного чемпиона-человека и в хвост, и в гриву, и вдоль, и поперёк, тезис был наконец изъят из употребления.
Акцент на пресловутое "творческое превосходство" перенесён в другие домены - в частности, в сложившуюся практику программистского шаманизма...
Схемотехническая мантра: титцешенкохоровицехилл. Повторять до просветления...

Peratron

  • Сообщений: 13579
  • GTLab - forever!
    • Просмотр профиля
    • E-mail
Re: Об алгоритмах...
« Ответ #37 : Февраля 02, 2015, 10:06:07 pm »
Цитировать
То, что алгоритмы есть наше всё и так понятно.
Как показывает дискуссия - вовсе не всем.
Схемотехническая мантра: титцешенкохоровицехилл. Повторять до просветления...

Peratron

  • Сообщений: 13579
  • GTLab - forever!
    • Просмотр профиля
    • E-mail
Re: Об алгоритмах...
« Ответ #38 : Февраля 02, 2015, 10:08:54 pm »
Цитировать
Женя, сказал "А" - давай хоть "Б"
В личку.
В общедоступном домене конструктив будет неизбежно погребён ранговыми амбициями.

Ведь своими тезисами, я, ни много ни мало, но покушаюсь на ЧСВ целого клана профессионалов  :-[
Схемотехническая мантра: титцешенкохоровицехилл. Повторять до просветления...

kwlw

  • Сообщений: 2408
  • Тёплый, ламповый
    • Просмотр профиля
Re: Об алгоритмах...
« Ответ #39 : Февраля 03, 2015, 06:48:29 am »
Цитировать
Peratron про регистры не писал, я хочу знать от Вас, что означает картинка в ответ на вопрос "Какой вывод сделали?" относительно рекомендации ознакомиться с MMX и SSE? ...я не терплю слинивание в кусты когда надо держать ответ  >:(

В принципе никого не волнует что вы терпите, а что нет.

А так, ради правды и интереса, как раз при утреннем кофе подвернулся наш главпрог с которым 13 лет бок обок всё строим. Обмусолили тему без ненужных эмоции. Чтож - убедили, был не прав, признаюсь   :(. Слишком оптимистично посмотрел на современные off-the-shelf компиляторы и слишком броско на код генерированный ими. Оказывается, иногда компиляторов "тянет" на странные вещи, например рваться использовать память, когда намного быстрей в куске кода высокого повторения обойтись только регистрами. И т.п. "шутки". Т.е. подгоняя под конкретную архитектуру приходится изрешетить код директивами препроцессора и вставками из асма. В наше то время!

И ещё закинул в одну кастрюлю всё. Т.е. посмотрел из своей башни с сотнями гигабайт рама, десятками ядер, спарками да итанюмами  :-[... А ведь сам-то, десять лет назад, ругался над сиськой и вставлял асм в процедуры обработки прерываний в программы на всяких аттини и 8052.

Sau
У меня - свой путь.