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

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

Spiteful

  • Сообщений: 1168
  • мэн крутой
    • ICQ клиент - 286974545
    • Просмотр профиля
Re: Об алгоритмах...
« Ответ #40 : Февраля 03, 2015, 07:25:04 am »
Итак, автор дал свой ответ на извечный вопрос "Программирование - наука или искусство?". Это похвально.
Разумеется, алгоритмы это хорошо, это "наше всё". В императивном программировании.
Алгоритм это граф. Как представлять граф - понятное дело, закона нет, кому как нравится. Не думаю, что будет справедливым обвинять в шаманстве тех, кто выбрал для себя текстовое представление этого графа.

ОФФ. Забавно слышать от Ператрона выпады против теоретиков  ;D
[size=9] - Комбики ламповые. Примочки транзисторные.
- Я за старые технологии. Я за аналоговую схемотехнику.[/size]

Rst7

  • Сообщений: 1619
  • Мимо проходил...
    • Просмотр профиля
    • E-mail
Re: Об алгоритмах...
« Ответ #41 : Февраля 03, 2015, 08:23:53 am »
Цитировать
Ведь своими тезисами, я, ни много ни мало, но покушаюсь на ЧСВ целого клана профессионалов  :-[

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

А любителей абстракций высокого уровня видали. По нынешним временам это выглядит так.

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

Профессионал, понятное дело, оценив поведение тракта в Матлабе, пишет полноценную реализацию, с оптимизацией кода в меру своего профессионализма. Что в результате приводит к снижению себестоимости в массовом производстве. И к повышению надежности.

В данном случае не надо путать настоящего профессионала с расплодившимися нынче говнокодерами.

А рассказывать про самолеты нам не надо, ибо "не так все было" (ц). Сами как бы по специальности РТСЛА учились.
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредствен

Samat

  • Гость
Re: Об алгоритмах...
« Ответ #42 : Февраля 03, 2015, 12:50:31 pm »
Цитировать
Цитировать
Peratron про регистры не писал, я хочу знать от Вас, что означает картинка в ответ на вопрос "Какой вывод сделали?" относительно рекомендации ознакомиться с MMX и SSE? ...я не терплю слинивание в кусты когда надо держать ответ  >:(

В принципе никого не волнует что вы терпите, а что нет.
Прекрасно это понимаю, но говорю прямо, что мне не нравится.

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

Цитировать
Оказывается, иногда компиляторов "тянет" на странные вещи, например рваться использовать память, когда намного быстрей в куске кода высокого повторения обойтись только регистрами. И т.п. "шутки". Т.е. подгоняя под конкретную архитектуру приходится изрешетить код директивами препроцессора и вставками из асма. В наше то время!
Проблема в том, что высокоуровневый ЯП - уже двойной интерпретатор, напичканный универсальными командами. Внутри команды "CopyMemory" ссылка на модуль "Move" между ними транслятор. "Move" содержит код на ассемблере (тоже ЯП, но более низкого уровня), использует 32-битные регистры. И затем этот код на асме компилятор перешьёт в машинный код. Парадокс в том, что в блок-схеме какого-нибудь алгоритма копирование информации из одного участка памяти в другой выглядит одинаково и для стандартной "CopyMemory" и для скоростной вставки, что я показал выше. Инженеру, не понимающему в программировании толком, нужен факт копирования памяти, и тут кроются сюрпризы. А на уровне структуры ВЯП коды совершенно разные, но выполняют одно и то же с разной скоростью. Поэтому блок-схема как принцип работы программы в целом по входам и выходам - это хорошо, а как способ записи самого кода - бумажная волокита.

Мне недавно Батя говорит "мы находимся на пороге внедрения виртуальной модели карьера, без бумажных планов горных работ, что ускоряет работу в десятки раз", я ему "в каком году я тебе говорил, что это надо делать? ...в 2002!" ...созрели.