Карталинский форум

Карталинское Веб Общение
Текущее время: 18 апр 2024, 19:13


Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 230 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 12  След.
Автор Сообщение
Непрочитанное сообщениеДобавлено: 19 окт 2010, 14:40 
Не в сети
Модератор
Модератор
Аватара пользователя

Сообщения: 376
Благодарил (а): 0 раз.
Поблагодарили: 8 раз.
Amigo писал(а):
SAA
Ну железка же пищит, когда неисправна карта памяти, а значит любое действие можно запрограммировать железке. Сама железка это и есть железный аналог программы.


нет сама железка называется "конечный автомат" посредством инструкций (команды) и операндов к этим инструкциям (данные) мы заставляем этот автомат переходить из одного состояния в другое. А вот железный аналог программы то есть формальное описание алгоритма на железо это уже совсем другое дело и совсем другой язык программирования (HDL).

Amigo писал(а):
SAAВот посмотри калькулятор, который возвращает ошибку в чистом виде. Возможно интепретатор её так выдаёт, но она есть. Выполни в нём деление на ноль. И выполни строку -1^(1/2) это будет ошибка корня из отрицательного числа.


ну вот тут посмотри как происходит ошибка деления на ноль:
http://www.fidel-kastro.ru/programming/msdos/276-4.html

Андрей вот смотри ассемблерный код который производит деление одного числа на другое:

mov eax, 200
mov ebx, 10
call div_a_b ; вызов процедуры деления
......................

div_a_b:
div ebx ; eax делиться на ebx результат размещается в eax
ret ; возврат

Вот скажи мне в чем передается результат деления eax на ebx и скажи кто должен уговориться что процедура деления в eax возвращает значение деления

а теперь скажи что будет если в ebx разместить 0?


Вернуться к началу
 Профиль  
Ответить с цитатой  
Непрочитанное сообщениеДобавлено: 19 окт 2010, 14:48 
Не в сети
Модератор
Модератор
Аватара пользователя

Сообщения: 376
Благодарил (а): 0 раз.
Поблагодарили: 8 раз.
Amigo писал(а):
Интепретатор интерпретирует код. Код это файл с командами. Вот он его и интерпретирует. Как cmd.exe интерпретирует *.bat или *.cmd. Всё тоже самое. Можешь назвать это виртуальной машиной. Но для меня ничего виртуального нет.



Амиго в том то и проблема что интерпретатор интерпретирует не код, а команды - как ключевые слова или ключевы конструкции языка. Он их интерпретирует как есть в литеральном выражении взял ключевое слово FOR состоящее из трех букв F,O,R на каждую из которых к примеру в кодировке koi8r отводится по байту и переварил выполнил действие. А виртуальная машина интерпретирует байт-код который сопоставлен языковой конструкции, например FOR будет иметь байт код 25, NEXT будет иметь код 10 и код уложится в один байт. Что быстрее сравнить один байт или три байта? После того как байты будут сравнены и результат сравнения покажет что это команда FOR будет выполнена команда FOR. Это все примитивно конечно очень упрощенно но понять разницу можно. Виртуальной машиной она называется потому что в противовес уже имеющемуся реальному процессору предлагает совсем другую систему команд которую она интерпретирует в инструкции реального процессора а не исполняет как сам процессор. Это не я придумал Амиго - JVM наверное не раз приходилось слышать? Java Virtual Machine.


Последний раз редактировалось SAA 19 окт 2010, 14:55, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
Ответить с цитатой  
Непрочитанное сообщениеДобавлено: 19 окт 2010, 14:52 
Не в сети
Пользователь
Пользователь
Аватара пользователя

Сообщения: 1264
Откуда: Карталы
Благодарил (а): 9 раз.
Поблагодарили: 70 раз.
Пол: Муж
SAA
Ответь сначала на вопрос, ты считаешь что интерпретатор возвращает код ошибки, проверяя неправильность действия, или всё же ариф. сопроц. выдаёт код ошибки и в текстовом виде он предсталяет абракадабру?

_________________
предлагаю услуги по настройке компьютера, подробнее


Вернуться к началу
 Профиль  
Ответить с цитатой  
Непрочитанное сообщениеДобавлено: 19 окт 2010, 14:57 
Не в сети
Модератор
Модератор
Аватара пользователя

Сообщения: 376
Благодарил (а): 0 раз.
Поблагодарили: 8 раз.
Decon писал(а):
Я привел статью где упоминается "арифметический процессор", не утверждая и не доказывая является он универсальным или нет. А универсальным кстати может быть и АЛУ и ЦП.


Я понял. Но насчет АЛУ не согласен. Универсальность характеристика ЦП, как может быть универсален сумматор или умножитель в АЛУ?


Вернуться к началу
 Профиль  
Ответить с цитатой  
Непрочитанное сообщениеДобавлено: 19 окт 2010, 14:58 
Не в сети
Модератор
Модератор
Аватара пользователя

Сообщения: 4587
Откуда: http://www.bit2bit.ru
Благодарил (а): 136 раз.
Поблагодарили: 294 раз.
Пол: Муж
SAA писал(а):
Decon писал(а):
Я привел статью где упоминается "арифметический процессор", не утверждая и не доказывая является он универсальным или нет. А универсальным кстати может быть и АЛУ и ЦП.


Я понял. Но насчет АЛУ не согласен. Универсальность характеристика ЦП, как может быть универсален сумматор или умножитель в АЛУ?

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

Честно смысла обсуждения подобного не вижу :)

_________________
Настройка и сопровождение Teamcenter, Mikrotik, Eltex, Asterisk, VoIP телефонии, голосовые и интерактивные меню.
Люди выучили умные слова, и стало сложнее определять идиотов.


Вернуться к началу
 Профиль  
Ответить с цитатой  
Непрочитанное сообщениеДобавлено: 19 окт 2010, 14:59 
Не в сети
Пользователь
Пользователь
Аватара пользователя

Сообщения: 1264
Откуда: Карталы
Благодарил (а): 9 раз.
Поблагодарили: 70 раз.
Пол: Муж
SAA
А как делается вызов из DLL? Тоже по байт-коду? Большинство команд просто вызов функций из DLL. Остальное возможно при старте переводится в байт-код. Но если нет, то давай сравним циклы. Напиши на C++, я на AutoIt3 и сравним скорость миллиона итераций.

_________________
предлагаю услуги по настройке компьютера, подробнее


Вернуться к началу
 Профиль  
Ответить с цитатой  
Непрочитанное сообщениеДобавлено: 19 окт 2010, 14:59 
Не в сети
Пользователь
Пользователь
Аватара пользователя

Сообщения: 1264
Откуда: Карталы
Благодарил (а): 9 раз.
Поблагодарили: 70 раз.
Пол: Муж
-----

_________________
предлагаю услуги по настройке компьютера, подробнее


Вернуться к началу
 Профиль  
Ответить с цитатой  
Непрочитанное сообщениеДобавлено: 19 окт 2010, 15:07 
Не в сети
Модератор
Модератор
Аватара пользователя

Сообщения: 376
Благодарил (а): 0 раз.
Поблагодарили: 8 раз.
Amigo писал(а):
SAA
Ответь сначала на вопрос, ты считаешь что интерпретатор возвращает код ошибки, проверяя неправильность действия, или всё же ариф. сопроц. выдаёт код ошибки и в текстовом виде он предсталяет абракадабру?


Интерпретатор не возвращает код ошибки верно? Код ошибки возвращает языковая конструкция, при условии что принято считать за ошибку. Вот смотри две одинаковые по действию функции, но одна проверяет значение делителя и не допускает прерывания "деление на ноль", возвращая при этом -1 которую программист пишущий программу оговаривает как ошибку. Вторая просто делит одно на другое и всегда возвращает результат деления. Но при делителе равном нулю, произойдет прерывание "деление на ноль" и управление никогда уже может и не вернется в эту программу, на экран вывалиться известная фраза "fault! divided by zero! stop!" а процессор будет переведен в состояние ожидание командой halt которая его фактически останавливает до поступления сигнала RESET.

FUNC DIV(a,b)

RETURN a/b;
END

FUNC DIV(a,b)

IF(b>0)
RETURN a/b;
ELSE
RETURN -1;
END

Поэтому я считаю что интерпретатор возвращает заранее оговоренное программистом значение которое этим же программистом считается ОШИБКОЙ, на самом деле это обыкновенное число.

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


Вернуться к началу
 Профиль  
Ответить с цитатой  
Непрочитанное сообщениеДобавлено: 19 окт 2010, 15:18 
Не в сети
Модератор
Модератор
Аватара пользователя

Сообщения: 376
Благодарил (а): 0 раз.
Поблагодарили: 8 раз.
Decon писал(а):
Каждый арифметический процессор представляет собой конвейерное устройство. АЛУ оперирует числами как с фиксированной, так и с плавающей запятой.


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

специализированным устройством по сравнению с универсальным считается устройство которое плохо поддается изменениям в программе - например не может переходить по условию на другой адрес или делать циклы. Как пример могу привести процессорные элементы графических карт NVidia или ATi они фактически плохо работают с ветвлениями (более современные чипы это научились делать) но зато очень хорошо обрабатывают потоки данных. Именно потому что эти потоки данных завязаны на вход АЛУ производящего операции точно так же как и АЛУ универсального процессора например x86.

Decon писал(а):
Честно смысла обсуждения подобного не вижу :)


ну это как угодно, можем и не обсуждать если нет желания :)


Вернуться к началу
 Профиль  
Ответить с цитатой  
Непрочитанное сообщениеДобавлено: 19 окт 2010, 15:20 
Не в сети
Пользователь
Пользователь
Аватара пользователя

Сообщения: 1264
Откуда: Карталы
Благодарил (а): 9 раз.
Поблагодарили: 70 раз.
Пол: Муж
SAA
Почему автор интерпретатора не сделал более адекватный код ошибки? Это толкает на мысль, что интерпретатор получил код ошибки и выдал его в виде 011001010 а в текстовом виде при переводе в шестнадцатеричную систему и далее в код ASCII символов получаем абракадабру. Автор интерпретатора наверно бы выдал типа ErrorType1, но не 1.#IN или -1.#IND

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

_________________
предлагаю услуги по настройке компьютера, подробнее


Последний раз редактировалось Amigo 19 окт 2010, 15:24, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
Ответить с цитатой  
Непрочитанное сообщениеДобавлено: 19 окт 2010, 15:23 
Не в сети
Модератор
Модератор
Аватара пользователя

Сообщения: 376
Благодарил (а): 0 раз.
Поблагодарили: 8 раз.
Amigo писал(а):
SAA
А как делается вызов из DLL? Тоже по байт-коду? Большинство команд просто вызов функций из DLL. Остальное возможно при старте переводится в байт-код. Но если нет, то давай сравним циклы. Напиши на C++, я на AutoIt3 и сравним скорость миллиона итераций.


вызов DLL делается обычным call на заданный адрес, но если код этого dll не загружен в ОЗУ, вызывать будет нечего поэтому перед вызовом функции из DLL производится ее загрузка в память. Как правило это все размещается в стартап-коде который компилятор присобачивает обязательно и его содержимым мы управлять можем очень слабо, почти ни как переписав только сам startup.

давай сравним циклы каким нибудь примитивным факториалом до 100 с шагом в 0.01? То есть для вещественных чисел. Пойдет?


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Програмирование.
Непрочитанное сообщениеДобавлено: 19 окт 2010, 15:25 
Не в сети
Пьянь
Пьянь
Аватара пользователя

Сообщения: 5041
Благодарил (а): 169 раз.
Поблагодарили: 144 раз.
Пол: Муж
SAA писал(а):
сравним циклы каким нибудь примитивным факториалом до 100 с шагом в 0.01

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

_________________
It is a good day to die....



За это сообщение автора DR.Faust поблагодарил: Lextor
  Рейтинг: 3.57%
Вернуться к началу
 Профиль  
Ответить с цитатой  
Непрочитанное сообщениеДобавлено: 19 окт 2010, 15:27 
Не в сети
Модератор
Модератор
Аватара пользователя

Сообщения: 4587
Откуда: http://www.bit2bit.ru
Благодарил (а): 136 раз.
Поблагодарили: 294 раз.
Пол: Муж
SAA писал(а):
далеко не каждый процессор представляет собой конвейерезированное устройство. :)
числа с фиксированной точкой не чем не отличаются от обычных целых чисел. :)
более того числа с плавающей точкой тоже по сути мало чем отличаются от представления целых чисел :)

Масло-масленое , причем тут уже специализированное и универсальное, и кто придумал что считать тем или другим. Что значить плохо, это когда можно но чучуть.

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

// иронизирую конечно :)

_________________
Настройка и сопровождение Teamcenter, Mikrotik, Eltex, Asterisk, VoIP телефонии, голосовые и интерактивные меню.
Люди выучили умные слова, и стало сложнее определять идиотов.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Програмирование.
Непрочитанное сообщениеДобавлено: 19 окт 2010, 15:30 
Не в сети
Пользователь
Пользователь
Аватара пользователя

Сообщения: 1264
Откуда: Карталы
Благодарил (а): 9 раз.
Поблагодарили: 70 раз.
Пол: Муж
SAA
Вызов DLL заранее оговаривается программистом перед использованием. Иначе вылетит с ошибкой. И как не крути имя команды придётся указывать текстом ну или кодом но длинна этого кода ни как не укоротится.

Зачем в цикл совать арифметический рассчёт? давай просто обновление переменной, ну или зациклить вывод в гуи, чтоб видно было ход процесса. А то выведу просто результат и доказывай потом что это был цикл :)

_________________
предлагаю услуги по настройке компьютера, подробнее


Вернуться к началу
 Профиль  
Ответить с цитатой  
Непрочитанное сообщениеДобавлено: 19 окт 2010, 15:36 
Не в сети
Модератор
Модератор
Аватара пользователя

Сообщения: 376
Благодарил (а): 0 раз.
Поблагодарили: 8 раз.
Amigo писал(а):
SAA
Почему автор интерпретатора не сделал более адекватный код ошибки? Это толкает на мысль, что интерпретатор получил код ошибки и выдал его в виде 011001010 а в текстовом виде при переводе в шестнадцатеричную систему и далее в код ASCII символов получаем абракадабру. Автор интерпретатора наверно бы выдал типа ErrorType1, но не 1.#IN или -1.#IND


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

RESULT = DIV(a/b)
IF RESULT < 0 THEN PRINT "Ошибка деления!"

а выражения 1.#IN или -1.#IND мне не о чем не говорят передать можно только содержимое регистра, а оно может быть каким либо 32-битным или 64-битным числом.

Amigo писал(а):
Посмотрел статью, там говорится о прерывании не как с чем то связанным с ошибками, а как о прерывании для опроса поступления данных от железяк.


Так арифметический сопроцессор и есть такая железяка генерирующая прерывания.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Програмирование.
Непрочитанное сообщениеДобавлено: 19 окт 2010, 15:39 
Не в сети
Модератор
Модератор
Аватара пользователя

Сообщения: 376
Благодарил (а): 0 раз.
Поблагодарили: 8 раз.
DR.Faust писал(а):
SAA писал(а):
сравним циклы каким нибудь примитивным факториалом до 100 с шагом в 0.01

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


Вот мне честно говоря и не хотелось гадить эту тему. Потому что ее назначение решить нужна такая ветка форума или нет. Если не нужна то будем гадить сюда если будет такая необходимость. Я прав?

Меряться не совсем пиписьками, хотя вполне подходит. Амига хочет понять чем нативный код отличается от интерпретируемого. Я ему сообщаю - скоростью выполнения как минимум. Он мне отвечает - ДОКАЖИ!

Он прав? :)


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Програмирование.
Непрочитанное сообщениеДобавлено: 19 окт 2010, 15:40 
Не в сети
Пьянь
Пьянь
Аватара пользователя

Сообщения: 5041
Благодарил (а): 169 раз.
Поблагодарили: 144 раз.
Пол: Муж
SAA
спасибо кэп! :-)

_________________
It is a good day to die....


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Програмирование.
Непрочитанное сообщениеДобавлено: 19 окт 2010, 15:42 
Не в сети
Модератор
Модератор
Аватара пользователя

Сообщения: 4587
Откуда: http://www.bit2bit.ru
Благодарил (а): 136 раз.
Поблагодарили: 294 раз.
Пол: Муж
Тьфу, ну так тут просто все оказывается, разговаривать удобнее(быстрее) родным языком или через переводчика!

_________________
Настройка и сопровождение Teamcenter, Mikrotik, Eltex, Asterisk, VoIP телефонии, голосовые и интерактивные меню.
Люди выучили умные слова, и стало сложнее определять идиотов.


Вернуться к началу
 Профиль  
Ответить с цитатой  
Непрочитанное сообщениеДобавлено: 19 окт 2010, 15:45 
Не в сети
Модератор
Модератор
Аватара пользователя

Сообщения: 376
Благодарил (а): 0 раз.
Поблагодарили: 8 раз.
Decon писал(а):
Масло-масленое , причем тут уже специализированное и универсальное, и кто придумал что считать тем или другим. Что значить плохо, это когда можно но чучуть.


Ну сколько там NVidia задекларировала производительность своей последней графической платформы? Вроде бы как Террофлопс? А оказался что Террафлопс то очень специализирован например может быть обеспечен только при отсутствии ветвления, а при его наличии он уже становится Гигафлопсом. Универсальный процессор даст 20 таких Гигофлопсах на задачах с ветвлением и без ветвлений. Вот кто придумал при этом назвать вычисления на платформе NVidia узкоспециализированными а на платформе x86 или ARM универсальными?

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


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

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


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Програмирование.
Непрочитанное сообщениеДобавлено: 19 окт 2010, 15:48 
Не в сети
Пользователь
Пользователь
Аватара пользователя

Сообщения: 1264
Откуда: Карталы
Благодарил (а): 9 раз.
Поблагодарили: 70 раз.
Пол: Муж
SAA
Вот накидал цикл, проверяй ссылка
Основное торможение на вывод в гуи при каждом шаге. Без него скорость - 1000000 шагов за 0.23 сек

_________________
предлагаю услуги по настройке компьютера, подробнее


Последний раз редактировалось Amigo 19 окт 2010, 15:56, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 230 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 12  След.   | Активные темы |  


Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © phpBB Group
ѥ골񦲳񲯢 ԰᪗eb