LINUX.ORG.RU
Форум — Talks  

Программирование без процессора

 теория вычисления


0

1

Прошу прощения за очередной нубский вопрос, но он мне не дает покоя, засел в моей голове, а простого ответа в гугле не нашел.

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

Перемещено DoctorSinus из development

☆

Последнее исправление: anonimous (всего исправлений: 1)
Ответ на: комментарий от anonimous

Говорит, особенно если перевести числа в бинарную систему счисления.

pylin ★★★★★
()
Ответ на: комментарий от pylin

Такие преобразования хоть в железе, хоть где то еще реализуются банально:

if(read = foo)print bar Вот и все преобразования. А вы думали что, там бином ньютона чтоле?

anonimous ☆
() автор топика
Ответ на: комментарий от anonimous

1 и 0 - это не числа а символы

В каком контексте? В контексте электронной схемы это даже не символы. В контексте процессора над ними производятся математические операции.

sin_a ★★★★★
()
Ответ на: комментарий от anonimous

Осталось всего-то определить реализацию каждого из элементов этой записи )

pylin ★★★★★
()
Ответ на: комментарий от anonimous

С чего вы взяли что ASCII связан с арифметикой.

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

Harald ★★★★★
()
Ответ на: комментарий от anonimous

Так это не человек а техник... А для человека имеет значение что кодировано этими единицами и нулями.

sin_a ★★★★★
()
Ответ на: комментарий от Harald

Ну так все ж просто: if(read = foo)print bar ) Какое там еще вычитание

pylin ★★★★★
()
Ответ на: комментарий от pylin

Мне надоело это словоблудие, я устал уже. Я могу сказать, что я, ради прикола, однажды реализовал арифметику (на лиспе), используя только 2 функции - car и cdr встроенные данные - список и символы. Все это к встроенной арифметике не имеет никакого отношения. Подумайте над этим. А у меня терпение кончилось.

anonimous ☆
() автор топика
Последнее исправление: anonimous (всего исправлений: 1)
Ответ на: комментарий от anonimous

if(read = foo)print bar Вот и все преобразования. А вы думали что, там бином ньютона чтоле?

а теперь подумай, как этот код на С исполняется процессором, в какие машинные инструкции он преобразовывается. Там арифметика стопроцентно присутствует

read = foo - из значения read вычитается значение foo, все биты результата OR-ятся и конечный результат пишется в Z-флаг регистра состояния процессора.

Далее if реализуется через инструкцию условного перехода, которая сравнивает содержимое Z-флага с единицей, и либо перепрыгивает за вызов функции print, либо ничего не делает, и управление передаётся следующей инструкции, которая вызывает print

а перепрыгивание делается путём складывания содержимого регистра-адреса текущей инструкции с относительным смещением инструкции, на которую происходит переход

ну это один из возможных вариантов

Harald ★★★★★
()
Ответ на: комментарий от anonimous

А теперь вам такой, наводящий вопрос: где это там в компьютерах car и cdr. А так это все конечно круто, только стрелка Пирса и Шефера они вобще твоярт чудеса

pylin ★★★★★
()
Ответ на: комментарий от pylin

Это не важно. это слой абстракции. А говорит это о том, что используя ТОЛЬКО символы можно имплементировать арифметику, но не наоборот.

anonimous ☆
() автор топика
Ответ на: комментарий от anonimous

а сложение - аппаратно, ссылку на википедию уже дали

Harald ★★★★★
()
Ответ на: комментарий от Harald

та арифметика о которой вы говорите, все равно в итоге сводится к логическим бинарным операциям над символами 1 и 0.

anonimous ☆
() автор топика
Ответ на: комментарий от anonimous

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

pylin ★★★★★
()
Ответ на: комментарий от anonimous

а ещё существовала в природе практическая реализация троичного компьютера, там вот всё к «бинарным логическим» операциям не сводилось, что вы на это скажете? :)

Harald ★★★★★
()
Ответ на: комментарий от anonimous

Да а теперь внимание вопрос: и у вас, корнечно, есть волшебные алгороитмы, которые умеют конвертить числа в символы и наоборот? С точки зрения компьютера как раз все эти ваши символы жуткая абастракция, числа такая же, только ими удобно оперировать разработчику аппаратки и далее по цепочке, а уже над числами возводить все эти ваши if и car, а с символами как-то неудобно.

pylin ★★★★★
()
Ответ на: комментарий от Harald

Очевидно же, там символьные операции делают:) Только разработчики «Сетуня» об этом были не в курсе)

pylin ★★★★★
()
Ответ на: комментарий от Harald

Не знаком, врать не буду, поэтому ничего не скажу.

anonimous ☆
() автор топика
Ответ на: комментарий от pylin

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

anonimous ☆
() автор топика
Ответ на: комментарий от Harald

Были, по-моему Таненбау пишет об этом в частности

pylin ★★★★★
()
Ответ на: комментарий от anonimous

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

pylin ★★★★★
()
Последнее исправление: pylin (всего исправлений: 1)
Ответ на: комментарий от anonimous

Полезный груз. Как http пакеты это просто полезный груз для eth кадра. Что там внутри они не знают и им это всё равно.

sin_a ★★★★★
()
Ответ на: комментарий от pylin

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

anonimous ☆
() автор топика
Ответ на: комментарий от anonimous

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

pylin ★★★★★
()
Ответ на: комментарий от pylin

Это уже второстепенно. Бинарную логику можно представить сколько-угодно-разрядной системой. Можно не представлять ни какой. Можно представить набором символов. Шестнадцатиричная система по факту после 10 представлена символами алфавита. Она от этого не изменится. Она первична.

anonimous ☆
() автор топика
Ответ на: комментарий от pylin

Да она и так представлена символами 1 0. Я же говорю, от того что Вы назовете их АБ ничего не изменится. Нет там никаких количеств - есть только сочетания символов.

anonimous ☆
() автор топика
Ответ на: комментарий от anonimous

Полезный груз, конечно, не? Потому что не будь полезного груза, никаких этих логических вентилей и триггеров просто не было бы вызвано к существованию, не? Человек — начало всему, смотри на человека а не на вещи.

sin_a ★★★★★
()
Ответ на: комментарий от anonimous

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

pylin ★★★★★
()
Ответ на: комментарий от anonimous

Поменяется, для начала вам надо задать правила оперирования с этими АБ, обосновать их свойства и т.д.

pylin ★★★★★
()
Ответ на: комментарий от Harald

С этим я и не спорю, оперировать человеку с нми все равно придется как с числами ) ПРосто там элементная база уже иная )

pylin ★★★★★
()
Последнее исправление: pylin (всего исправлений: 1)
Ответ на: комментарий от pylin

Объясняю. Надо определится сначала, что есть символ. Представим, что мы (как-бы) договорились с железками - что когда сигнальная лампочка горит - это символ аварии. Машина разумеется этого не знает, но я реализую схему так, чтобы в случае аварии, к примеру, превышение уровня воды, она зажигала эту лампу. Она ее зажигает для меня, и до поры не знает, что это символ аварии. Как ей «объяснить» это. Ставим параллельно с этой лампочкой схему, которая включает насос откачки жижкости. Что она делает когда включает вместе с лампочкой насос? Она «понимает» мой символ аварии. По другому машина понять символ не может. Программист создает илюзию понимания, и это и есть основа вычислений.

anonimous ☆
() автор топика
Ответ на: комментарий от anonimous

Этот этюд на темы понимания компьютером смысла никакого отношения не имеет к обоснованию системы операций над объектами. Вы так и не вводите ни объектов, которыми оперируете, ни операций над ними, не описываете их свойств и т.д.

pylin ★★★★★
()
Ответ на: комментарий от Harald

А вот манитор на столе у меня один. Так что монитор это число. А вот ролс-ройса вообще нет. Тоже число, ибо ноль.

anonimous ☆
() автор топика
Ответ на: комментарий от anonimous

Ну а почему нет? Для какой-нибудь ERP(система управления ресурсами на прежприятии, если не ошибаюсь) это так и есть

pylin ★★★★★
()
Ответ на: комментарий от pylin

Как это не ввожу? Я оперирую объектом «уровень воды», «авария», «аварийный сигнал», «ликвидация аварии». Наша примитивная система оперирует этими объектами, хотя ничего о них не знает. Как впрочем и ваш комп ничего не знает о ваших числах.

anonimous ☆
() автор топика
Ответ на: комментарий от pylin

Опять 25. Я не спорю что все объекты можно представить как числа. Но сами объекты от этого числами не станут.

anonimous ☆
() автор топика
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.