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
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.