От Alexandre Putt
К А.Б.
Дата 24.08.2009 20:18:47
Рубрики Россия-СССР; Крах СССР; История; Идеология;

Не притворяйтесь более глупым, чем есть :)

>Кстати. товарищ философ осилит понимание тезиса "если чего нет в ассемблере, значит этого нет ни в одном языке, так как процессор этого "не умеет" - нет у него такой операции"?

Э, тут Вы не правы. Ассемблер - это язык программирования, т.е. описание правил составления программ (синтаксис там и т.п.)

Вы при всём желании не сможете в ассемблер ввести неявное задание переменных например, как в Фортране. Потому что в языке этого нет :o)

Или, например, при всём желании не сможете сделать программы на ассемблере кросс-платформенными. Так что Ваш метод, гм, рассуждений дал сбой.

Конечно, если говорить в более узком смысле, о функциональности, то ничто не мешает написать подпрограммы на ассемблере, позволяющие скажем выполнять операции с вещественными числами для массивов произвольно меняющейся размерности.
Но не надо :o)

>Потом можно пофилософствовать на тему "добро или зло языки высокого уровня". Так как все удобства их даются небесплатно - а за ограничения в возможностях. :)

Да прямо. Iva всё доступно на эту тему написал.

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

Вон специально скомпилировал свою программку для марковских цепей (всего-то 500 строк) из чулана. На ассемблере текст компилятор суёт - более 3 тыс строк, без комментариев. Если б я писал это на ассемблере, было бы, наверное, все 10 тыс. Оно мне надо?

От А.Б.
К Alexandre Putt (24.08.2009 20:18:47)
Дата 24.08.2009 21:28:20

Re: За вами - не угнаться, порой.

>Э, тут Вы не правы. Ассемблер - это язык программирования, т.е. описание правил составления программ (синтаксис там и т.п.)

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

>Вы при всём желании не сможете в ассемблер ввести неявное задание переменных например...

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

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

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

>Сегодня если надо численно решить дифф уравнение, то для этого все пользуются обёрткой либо готовой функцией для фортрана.

Что вы. У него препоганейший вывод. Все давно пользуются спецпакетами, где проблема решена. Кстати - с точки зрения графики - зачастую при помощи ассемблера. Сегодня (под винды) - это С++ (или вижуал) - но ПМСМ - это неверный выбор. :)

>Если б я писал это на ассемблере, было бы, наверное, все 10 тыс. Оно мне надо?

Я не знаю объема вашей оперативной памяти и четкости мышления. Поэтому мне тяжело судить что вы можете, а что нет. :)

От Alexandre Putt
К А.Б. (24.08.2009 21:28:20)
Дата 24.08.2009 22:04:19

А надо - гоняться?

>На самом деле - это средство облегчающее запоминание кода машинной инструкции человеком. Синтаксиса там не так много наросло. И, в принципе, можно обойтись без него. Зачастую - и обходятся.

Что значит "на самом деле"? Куда его прикрутить? Вы либо согласны, либо нет (что с моей т.зрения - абсурд). Ассемблер - язык программирования. Да или нет? Синтаксис у него есть?

>>Вы при всём желании не сможете в ассемблер ввести неявное задание переменных например...
>
>Не совсем понял о чем вы. Вообще - переменные (те которыми можно пользоваться) задаются всегда явным адресом.

О том, что "грамматика" Фортрана позволяет не декларировать переменные, что, естественно, невозможно для "грамматики" ассемблера.

> Иначе машина не сможет до них "добраться". Еще немаловажный параметр - размар переменной. Байт, слово, двойное слово или более того.

Угу. А есть "грамматики", где тип переменной неявен. Боюсь, Вам действительно не угнаться.


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

Хм, если у Вас нет мат сопроцессора, то ассемблер Вам ничем не поможет. На фортране же будет программный эмулятор. Потому что "грамматика" языка чётко прописывает, что вещественные числа должны быть.

Вы, конечно, можете изготовить самопальный эмулятор. Но зачем? Как-то суть программирования за этим теряется.

Ох, трудно даётся понимания того, что собственно есть язык программирования

>>Сегодня если надо численно решить дифф уравнение, то для этого все пользуются обёрткой либо готовой функцией для фортрана.
>
>Что вы. У него препоганейший вывод. Все давно пользуются спецпакетами, где проблема решена.

Ну так спецпакеты вызывают библиотеку на фортране. А вывод, да, другими средствами. Как-никак 21 век на дворе

От А.Б.
К Alexandre Putt (24.08.2009 22:04:19)
Дата 24.08.2009 22:27:08

Re: Вот понимать - точно надо. :)

>Что значит "на самом деле"? Куда его прикрутить?

Это значит - на самом деле. Вы ж не собираетесь утверждать что есть только 2 решения любой задачи - правильное и неправильное? :)

>Ассемблер - язык программирования. Да или нет? Синтаксис у него есть?

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

>О том, что "грамматика" Фортрана позволяет не декларировать переменные, что, естественно, невозможно для "грамматики" ассемблера.

А смысл в том велик? Ассемблер так тоже может - dw 1024 dup(?) - и у вас есть 1К "переменных" - каких хотите. :)


>Хм, если у Вас нет мат сопроцессора, то ассемблер Вам ничем не поможет.

Поможет запросто. Просто надо самому знать что и как посчитать. Итеррационно или рядами. Вот если не знать - то да. Это будет проблема. :)

>Вы, конечно, можете изготовить самопальный эмулятор. Но зачем? Как-то суть программирования за этим теряется.

Как раз нет. Суть, по моему, теряется за "кустарщиной ремесла".

>Ох, трудно даётся понимания того, что собственно есть язык программирования

Средство для формализации "алгоритмической" задачи.
А что для вас представляет собой "язык программирования" (коих, кстати, много есть на свете)?

>Ну так спецпакеты вызывают библиотеку на фортране.

Нет. Вовсе нет. Скорее "на ассемблере" - точнее - в коде, сгенеренном С++. Что очень близко к ассемблеру. :)


От Александр
К А.Б. (24.08.2009 22:27:08)
Дата 24.08.2009 23:26:49

Re: Вот понимать...

>>Хм, если у Вас нет мат сопроцессора, то ассемблер Вам ничем не поможет.
>
>Поможет запросто. Просто надо самому знать что и как посчитать. Итеррационно или рядами. Вот если не знать - то да. Это будет проблема. :)

В ИБМ704, что характерно, работа с вещественными числами была реализована аппаратно. То есть "сопроцессор" был. Равно как и у БЭСМ и прочих мэйнфреймов.

До чего назойливы могут быть участники, искренне верящие что строка фортрана транслируется в 300 строк ассемблера, программу управления ядерным реактором можно написать за пару часов, а АМД с Интелом пислали свои версии БЛАС-а на фортране.

Дурак написал учебник, а попугай его вызубрил. Сюр, да и только.

>>Ох, трудно даётся понимания того, что собственно есть язык программирования
>
>Средство для формализации "алгоритмической" задачи.
>А что для вас представляет собой "язык программирования" (коих, кстати, много есть на свете)?

Трудно дается что фортран не лучший предмет для рассуждений о "собственно языке программирования", по причине примитивности.

>>Ну так спецпакеты вызывают библиотеку на фортране.
>
>Нет. Вовсе нет. Скорее "на ассемблере" - точнее - в коде, сгенеренном С++. Что очень близко к ассемблеру. :)

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

Эти примитивы не только дурачек с матлабом на писишке пользовать будет, но и серьезные дяди, которые ждут результатов вычисления на тысячепроцессорном суперкомпьютере неделями. Какой там нафиг фортран? Мало ли что в предисловиях к учебникам напишут. Но народ впечатлительный к звону, источника которого не знает.
--------------------
http://www.orossii.ru

От Администрация (Monk)
К Александр (24.08.2009 23:26:49)
Дата 24.08.2009 23:49:21

3 дня р/о за переход на личности. (-)


От Alexandre Putt
К Александр (24.08.2009 23:26:49)
Дата 24.08.2009 23:36:18

Вы как всегда всеведущи

BLAS не содержит ни строчки ассемблера и на 100% написан на фортране.

GOTO BLAS действительно написан на ассемблере

Но вот LAPACK - опять на фортране, от и до. Неверующие и всезнающие могут обратиться к исходникам.

Ряд других пакетов более высокого уровня написаны на C, иногда с вкраплениями Фортрана.

От Alexandre Putt
К А.Б. (24.08.2009 22:27:08)
Дата 24.08.2009 22:50:46

Re: Вот понимать...

>Это значит - на самом деле. Вы ж не собираетесь утверждать что есть только 2 решения любой задачи - правильное и неправильное? :)

А что, нет? Есть другой вариант? :)

>Есть, но он не главное. Скажем так, сперва это формализм, а потом уже - синтаксис.

Ну так как там с неявным заданием переменных? :)

>>О том, что "грамматика" Фортрана позволяет не декларировать переменные, что, естественно, невозможно для "грамматики" ассемблера.
>
>А смысл в том велик? Ассемблер так тоже может

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

> - dw 1024 dup(?) - и у вас есть 1К "переменных" - каких хотите. :)

Строго говоря это не переменные, а просто адрес участка памяти. В общем, нет у него переменных и даже типов данных нет. Можете сколько угодно убеждать меня в том, что это можно реализовать, это всё равно будет абсурдно. Да, можно сделать динамическое выделение памяти. Если написать свой менеджер кучи. Если выделить в начале программы гигантский кусок памяти. Флаг в руки. Я посмотрю, сколько лет Вы будете работать, чтобы в итоге получить возможности, всё равно уступающие любому языку высокого уровня, и с непрофессиональной реализацией. И всё это - чтобы таки получить "Hello world" на выходе ,)

>Поможет запросто. Просто надо самому знать что и как посчитать. Итеррационно или рядами. Вот если не знать - то да. Это будет проблема. :)

Так а зачем? Вы как предпочитаете, зайти в автосалон, купить автомобиль и поехать на нём, или приобрести набор "сделай сам"?

Да, Вы можете написать подпрограммы для этого. Но Ваши подпрограммы будут уступать профессиональным, и на их написание Вы потратите лучшую часть жизни. Не проще ли взять Фортран, где уже всё для Вас сделано?

>>Вы, конечно, можете изготовить самопальный эмулятор. Но зачем? Как-то суть программирования за этим теряется.
>Как раз нет. Суть, по моему, теряется за "кустарщиной ремесла".

Какой кустарщиной? Если Вам нужно проанализировать результаты опыта, у Вас меньше всего времени на программную реализацию всего этого. Вам нужно быстренько реализовать алгоритм и работать с результатами обработки.

>Средство для формализации "алгоритмической" задачи.
>А что для вас представляет собой "язык программирования" (коих, кстати, много есть на свете)?

Понятийный аппарат + правила составления конструкций, выполняющих определённые действия над объектами. Разные языки дают разные возможности (хотя действительно много задач можно сравнительно беспроблемно решить на любом языке)

>>Ну так спецпакеты вызывают библиотеку на фортране.
>Нет. Вовсе нет. Скорее "на ассемблере" - точнее - в коде, сгенеренном С++. Что очень близко к ассемблеру. :)

Зависит от задачи.

От А.Б.
К Alexandre Putt (24.08.2009 22:50:46)
Дата 25.08.2009 08:00:42

Re: Жизнь многогранна. :)

>А что, нет? Есть другой вариант? :)

Конечно. Есть еще точность в решении, приемлемая или нет. Есть разного рода оптимальности в решении. Их довольно много может быть, правильных решений.
Это. разумеется, если не впадать в максимализм "для простоты".

>Ну так как там с неявным заданием переменных? :)

Так, что прежде чем использовать переменную по делу - вы (неявно для вас. быть может) ее зададите явно. Адресом и размером. На ассемблере - ровно так же дела обстоят. Только вот, "высокий уровень" языка не позволит вам просто провести "преобразование типа", а ассемблер - позволит. Он предполагает что его использующий - не чайник-кодировщик, а человек отчетливо понимающий что и зачем он делает. И что "unsigned int" на самом деле есть адрес-указатель, которым можно пользоваться без ошибки сразу по месту. И можно не городить "преобразование типа" всякий раз. :)

>А, ну да, я же и забыл, что в этом мире Вы исполняете почётную миссию нести флаг ассемблера!

НЕт. Вы ошиблись. Я исполняю забавную миссию (для себя) - изучения распространенных (и не очень) человеческих заблуждений. Волей-неволей, приходится при этом проговариваться о том "как оно на самом деле есть на свете" - но, к счастию, очень мало кто готов принять правду как она есть. Поэтому заблуждения остаются неискаженными моим воздействием на их носителя. Что приятно. :)

>Ассемблер много чего может, что не нужно.

Значит процессор может много. чего "не нужно". Осталось выяснить почему так. Зачем проектировщики его мучались, создавая и усложняя то, "чего не нужно". Мазохисты или просто "давились за прибылью"? :)

>Строго говоря это не переменные, а просто адрес участка памяти.

А что для вас такое "переменная"? Что это такое для ЦП - я уже говорил. Но ваше мнение. отличное от мнения ЦП - интересно. :)

>Так а зачем? Вы как предпочитаете, зайти в автосалон, купить автомобиль и поехать на нём, или приобрести набор "сделай сам"?

Волей отечественного автопрома... до последних лет все мы проходили через "сделай сам". А причин "самоделок" может быть много. Мне. например, легче сделать "нужную зубочистку", чем лазить искать "последнюю версию чего-то там брендового", которая уже умеет ровно то что нужно в данный момент мне. :)

>Да, Вы можете написать подпрограммы для этого. Но Ваши подпрограммы будут уступать профессиональным...

А, может, и не будут. Но они точно будут делать то. что мне нужно. И я точно буду знать где в них таятся подвохи и как их исправить, если вдруг они окажутся неприемлемы.

>..., и на их написание Вы потратите лучшую часть жизни.

:) Лучшую часть лучше провести на диване?

>Не проще ли взять Фортран, где уже всё для Вас сделано?

Ни! ЗА! ЧТО!! С да асм - остальное от лукавого! За исключением мапла. :)

>Какой кустарщиной? Если Вам нужно проанализировать результаты опыта, у Вас меньше всего времени на программную реализацию всего этого.

Если ТАК свербит - то используется мапл или пакет статистики. Написанный вовсе не на фортране. я вас умоляю! :)

А вот коли выньдос (получив порцию кода в свежеоткопанную кулхацкерами дыру) закрывает вам доступ в директорию...
Вы мне расскажите как вы на фортране будете решать эту проблему. А я послушаю под пиво с чипсами. :)

>Понятийный аппарат + правила составления конструкций, выполняющих определённые действия над объектами.

ООП провалилась. Вы не в курсе, разве? :)

>Зависит от задачи.

Практически - не зависит. Фортран довольно давно эээ помрэ. :)