Александр Тарасенко - Полёт ласточки в околоземном пространстве
Неискушённому читателю будет интересно узнать следующее.
1) Задумывались ли вы почему компьютеры работают на двоичной логике. Почему не на троичной, например? Или прямо как мы с вами, на десятичной — вот было бы удобнее, да и быстрее. Часть ответа заключается в том, что сделать компьютер работающий с двоичной арифметикой легче чем с троичной. Но это малая часть от ответа. Дело в том, что двоичная логика единственная из «логик», которую тщательно проработали. В том числе незабвенный Дж. Буль, чьим именем она и названа (булева алгебра). Вы спросите насчёт десятичной математики, уж она точно должна быть исследована от и до, вон сколько людей ею пользуется. Однако есть одно большое и страшное но: математика и логика несколько разные вещи. И двоичная логика, как самая простая, единственная разработанная. Я сказал единственная? Я обманул вас. Некий Чарльз Лутвайдж Доджсон (известный в литературе как Льюис Кэрролл) разрабатывал троичную логику. А некий Н. П. Брусенцов шестьдесят лет назад сконструировал и запустил единственную в мире ЭВМ с троичной архитектурой. Но из-за резко возросшей сложности его изобретение осталось лишь очередным напоминанием о том, что «непреложные истины» не такие уж непреложные на самом деле.
Любая программа, любой алгоритм может быть записан через условные обозначения. Это и есть текст. Любое, сколь угодно подробное описание реальности (при условии что мощность языка будет достаточна для столь подробного описания. Иначе говоря в языке найдутся необходимые слова) есть текст. Или, по крайней мере, могут рассматриваться как текст если то потребуется для какой-то цели.
Листинг. Записанный код программы в удобном для прочтении человека виде. Текст.
hello word. Устоявшаяся хотя и бесполезная традиция начинать объяснение нового языка программирования с простейшей программы печатающей на экран «здравствуй мир».
Возможно вы слышали термин «дефрагментирвоание». Он как раз и означает операцию собирающую по всему диску кусочки одного и того же файла и записывающую полученный файл в одно место и так для все файлов. Это существенно ускоряет чтение и запись информации так как для чтения одного файла не надо гонять считывающую головку по всему диску, а достаточно переместить всего раз на начало файла и далее последовательно считывать до его конца. Однако следует знать, что частое дефрагментирование (чаще раза в месяц) не приносит никакой заметной пользы потому, что за это время новые файлики не успевают «растечься» по разным частям диска.
Примечания
1
Пинговать. От слова ping. Утилита (маленькая программа) посылающая удалённому компьютеру эхо-запрос и ожидающая от него эхо-ответ. Обычно используется для проверки связи между компьютерами. Так как эхо-посылки имеют более высокий приоритет по сравнению с обычными пакетами (иначе эха век не дождаться) возможно использовать множественные посылки эхо-запросов для снижение производительности удалённого компьютера или (учитывая что на запрос следует эхо-ответ) машины с которой осуществляются множественные эхо-запросы. Это простейший вид сетевой атаки когда сто компьютеров заваливают запросами один или один рассылает запросы множеству и оказывается погребённым под лавиной ответов. Подобные атаки предотвращаются элементарным запретом компьютеру принимать эхо-запросы.
2
skype — бесплатная для использования программа позволяющая двум имеющим выход в интеренет собеседникам переписываться, переговариваться и видеть друг друга в реальном времени. При этом оба платят исключительно за передачу данных в сети (то есть обычно нисколько не платят).
3
Но можно использовать все имеющиеся алгоритмы (чёткого определения слова «алгоритм» не существует. Примерно его можно понять как способ решения задачи, способ получить то, что хочешь из того что есть. Часто «алгоритм» и «программа» используются как синонимы). Вот только придётся сделать всё заново. Написать самому себе операционную систему, написать язык программирования, чтобы вместо записи «сохранить содержимое ячейки N (N>1) в ячейку номер один. Сложить данные из ячеек M (M>1) и 1 и сохранить результат в ячейке 1. Взять данные из ячейки 1 и сохранить в ячейке номер K (ну кончено K>1 ибо первую ячейку мы используем для хранения промежуточных результатов вычислений)». Чтобы вместо всего этого вы могли написать с=а+b.
4
bmp — самый простой формат для хранения и обработки графических изображений. По сути представляет собой двухмерный массив точек с сохранением цвета для каждой точки.
5
Имеется в виду мультик о паре живущих в научной лаборатории мышей — Брэйну и Пинки. Каждый вечер они только и занимаются, что пытаются различными способами поработить весь мир.
6
Картинки, видео, звук — всё хранится на жёстком диске не более чем как набор символов. Как текст.
Неискушённому читателю будет интересно узнать следующее.
1) Между программой и данными нет никакой разницы. То есть вообще никакой. Не верите? Тогда рассмотрим последовательность из трёх байт (трёх ячеек памяти, каждая из которых хранит какое-то десятичное число): 10 15 4. Мы можем считать это просто тремя числами — например весом трёх гирь на рынке в килограммах. Можем считать это цветом глаз трёх людей (где цвета представлены в виде числе 0 — чёрный, 15 — белый и так далее). Другими словами рассматриваем эти три байта как хранящиеся данные. Однако если захотим, никто не помешает сказать что 10 это код команды (например 5 — код команды очистить ячейку памяти, 10 — команды скопировать данные), а числа 15 и 4 — номерами ячеек. Тогда приведённая последовательность будет означать что следует скопировать данные из ячейки с номером четыре в ячейку с номером пятьнадцать. Как видите нет никакой (кроме создаваемой искусственно для удобства программиста как например аккуратный человек хранит белые носки в одном месте, а чёрные в другом) разницы между программой и данными. Всё зависит исключительно от того, что с хранящимся в ячейке памяти числом вычислительная машина собирается делать. Если вы поняли этот абзац, то вы уже почти готовый программист на самом великом и самом трудоёмком из современных языков программирование — assembler.
2) Папка (директория), с точки зрения файловой системы, ничем не отличается от обычного файла. Единственное отличие — один бит в атрибутах, показывающий, что это именно директория, а не файл.
(adsbygoogle = window.adsbygoogle || []).push({});