9 16 19 7 31 16 21 23 3 19 9 13 19 33 19 24 ,
31 12 19 9 2 18 3 32 - 12 19 19 26 12 21 17 8 9 19 24 !
19 9 32 14 24 2 12 , 19 26 23 16 25 2 7 13 16 26 12 4 ,
9 16 19 7 11 3 29 19 12 19 7 9 16 13 16 26 12 4 .
8.
Определите по логотипу название антивирусной программы:
.
9.
Благодаря действиям нашей разведки удалось не только перехватить
сообщение, которое использовалось для тестирования системы шиф-
рования противника, но и выяснить, что в качестве исходного текста
использовалось стихотворение Пушкина А. С. «Во глубине сибирских
руд…».
ВБИИХЕОПНПВО Ы ЛНТРЕНААПЕЗ СВЕЕАПЮИЕДД ЬНТ-
КВАЫЫИ ДЛОЖАЕ ТСАРРНХ ЯВДОИБХР ЕЕЕААРТДССЕЕЬНСА
ЧОЛББТЕ,ТНОБ СООС ЫВААТЕДТСНАВКДМР ВВИАООБ АА НИ
АГ Н ДШБРУОТНСЮАТДВНДЬУОЬСП НРОДТ ЙКМЕОКШО О
ВЫСЫИУНУ-ОАМД ДРММДЛ СУИРЕЕРТСЫД ОЕЕАВ АЖММЕ-
РИРИЛИЕЯ:ЬУОАУОАЗЫВ
ЖОООБ
ОТ
,ЦНИО
ТС
,ТЧОТУСКДТДР,О КЙИВЕМ.СЕС,ДР МАТО ЬДЛ Л Ж СТЗЧА,
КНРДЙОГКЯПТЫУ ДП ТВИЬ Т.ГЕРРНОТЬПЕ НУМКРЬЧ ЯРЕ
ОЗЕДД ЕРЖААВРВВДВР Р ИРНХМОЙ. ЕТИХ БСЕОУААЕ У
Необходимо расшифровать перехваченную шифровку:
-БЮНРЕЧН :ЫН ЫДАЕ ТЕПБРЕДЛИШМТОШЛОИ , В ,,НЕМА-Ы Л
ВН ЫЕЯТ !АИ ЕЯО НЕГ В
208
7 Языки программирования
Язык формирует наш способ мышления и
определяет то, о чем мы можем мыслить.
Б. Л. Ворф
7.1 Исторический обзор
Первые компьютеры, которые появились в 40-х годах XX века, были ори-
ентированы для военных целей, создавались в единственных экземплярах и вы-
полняли узкоспециализированные задачи. Программы вводились в них посред-
ством соединения гнезд на специальной коммутационной панели, которая
управляла последовательностью выполняемых операций. Так, например, про-
грамма для компьютера ENIAC (выполнявший расчет баллистических траекто-
рий) не хранилась в оперативной памяти, а жестко задавалась при помощи ше-
сти тысяч перемычек на сорока коммутационных панелях, причем на каждое
перепрограммирование ENIAC уходило не менее двух дней. Таким образом,
все программирование происходило непосредственно на «железном уровне», а
о языках программирования приходилось только мечтать (рис. 7.1) [9, 13].
Рис. 7.1 – Создание программы на компьютере ENIAC
В то время элементная база таких компьютеров была очень скудной, па-
мяти хватало буквально для хранения данных, не говоря уже о хранении кодов
исполняемых инструкций. Впоследствии, с развитием электронной техники,
209
стало возможным быстро загружать в память исполняемые программы. Тысячи
проводов и коммутационные панели стали уходить в прошлое, их заменили
массивы кодов инструкций, которые загружались с помощью перфолент, пер-
фокарт и магнитных барабанов.
Программирование стало происходить в машинных кодах. Теперь, чтобы
создавать программу для решения определенной задачи, требовалось знание
кодов всех машинных операций, назначение и особенности применения каждой
из них, а также помнить адреса конкретных ячеек памяти, хранящие те или
иные операции и данные. Создаваемые программы представлялись в двоичной
форме при помощи нулей и единиц (рис. 7.2).
Рис. 7.2 – Программа в машинных кодах
Следующим этапом упрощения общения человека с компьютером, было
создание языков программирования типа ассемблер, в которых переменные ве-
личины стали изображаться символическими именами, а числовые коды опера-
ций были заменены на мнемонические (словесные) обозначения, которые легче
запомнить. Например, команда, «Поместить данные в ячейку памяти» стала
называться MOV, а команда, суммирующая данные, – ADD. Язык программи-
рования приблизился к человеческому языку и удалился от языка машинных
команд (рис. 7.3).
Рис. 7.3 – Сложение двух чисел на языке ассемблера
Чтобы компьютер мог работать на языке ассемблера, понадобился транс-
лятор – программа, переводящая текст программы на ассемблере в эквивалент-
ные машинные команды (рис. 7.4).
Рис. 7.4 – Назначение транслятора
210
В 50-х годах XX века в связи с широким применением компьютеров в
различных областях науки и техники возникла серьезная проблема: простые
пользователи не могли работать с компьютером из-за сложности языка ассем-
блера и машинных кодов, а профессиональные программисты были не в состо-
янии обслужить огромное количество пользователей. Решением данной про-
блемы явилось создание языков программирования, форма записи программ на
которых стала ближе к традиционной математической форме и разговорному
языку. Машинные языки, языки ассемблера стали называться языками низкого
уровня; языки, позволяющие писать программы на родном для человека язы-
ке, – языками высокого уровня.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Do'stlaringiz bilan baham: |