Original:http://insar.stanford.edu/~lharcke/programming

ПРИМЕЧАНИЕ. Эта страница не обновлялась с 2004 года.

Программное обеспечение

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


Преобразование календарей

Значительная часть НАСА и коммерческой спутниковой промышленности работает с датами дня года, а не месячными/дневными датами для запуска последовательности, планирования средств отслеживания и других мероприятий по планированию миссий. При непосредственном участии при планировании принято придерживаться «вечного календаря», который представляет собой единый лист бумаги, содержащий таблицу преобразования. Одна сторона имеет таблицу общего года от 1 до 365, а другая сторона имеет таблицу високосного года от 1 до 366. Таблицы легко справляются с подобным преобразованием.

День года для HP 32SII

Поскольку я часто нахожусь без «вечного календаря» или программы для работы с электронными таблицами, но с моим программируемым калькулятором Hewlett-Packard 32SII, я написал программу для калькулятора, которая выполняет преобразование. Программа реализует уравнения из книги «Астрономические алгоритмы» Жана Миуса. Meeus приписывает алгоритм прямого преобразования в Военно-морской обсерватории США и обратное преобразование в частном корреспонденте в Нидерландах.

Число юлианских дней в Perl

На настольной машине, которая используется для долгосрочного планирования и анализа данных, более полная система чисел Юлиана, распространенная в астрономии, тоже нам пригодится. Этот скрипт Perl находится в ~/bin и конвертирует между григорианскими датами календаря и Юлианским стилем, используя три разных алгоритма. Один алгоритм способен преобразовывать дробные дни, то есть часы, минуты и секунды, если это необязательно указано в командной строке.

PCLNFSS - файлы стиля LaTeX 2e для шрифтов PCL

Набор файлов стиля для использования стандартных 45 масштабируемых шрифтов в ROM любого PCL 5-ти или более позднего высокопроизводительного принтера. Этот пакет должен использоваться с dviljk или аналогичным драйвером DVI to PCL для генерации PCL из файла DVI, который производится из LaTeX.

Список дел:


Ресурсы Xcms

Мало кто нуждается в точной цветопередаче на своем рабочем столе, и большинство из них работают с дисплеями в некалиброванном режиме RGB или режиме sRGB с предполагаемой калибровкой. API управления цветом дисплея был встроен в X Window System с X11R5, но документация разбросана по всему распределению X и редко включается в дистрибутивы XFree86. Программное обеспечение очень сложно использовать без надлежащей документации. К счастью, имеется много архивов документации. Вот коллекция, которая поможет случайному программисту Xcms.



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

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


40-битная архитектура

В 1945 году, сотрудничая с Экерттом и Мочли в Школе электротехники Мур в Университете Пенсильвании, фон Нейман написал первый проект отчета EDVAC . В этом документе описана логическая структура 32-разрядной битовой последовательной архитектуры и определена концепция хранимого программного электронного компьютера. Спустя год в 1946 году Беркс и Голдстин, недавно переехавшие в Институт перспективных исследований, присоединились к компьютерным усилиям фон Неймана, опубликовали предварительное обсуждение логического дизайна электронного вычислительного инструмента с фон Нейманом в качестве третьего автора. В этом отчете Burks, Goldstine и von Neumann была описана 40-битовая би-параллельная асинхронная архитектура. Большинство современных компьютеров произошли от этого второго отчета. Дизайн известен как архитектура Принстона или IAS, чтобы отличить его от архитектуры Гарварда Марка Айкена I. Фон Нейман собрал команду в IAS для сборки машины, как указано в отчете. Были широко распространены отчеты о проделанной работе Электронного компьютерного проекта IAS, в результате чего были построены и установлены аналогичные машины в шести других учреждениях: Национальная лаборатория Аргонн (AVIDAC), Национальная лаборатория Ок-Ридж (ORACLE), Национальная лаборатория Лос-Аламоса (MANIAC) Университет Иллинойса (ILLIAC), Лаборатория баллистических исследований в Абердине (ORDVAC) и RAND Corporation (JOHNNIAC) [JOHNNIAC в настоящее время экспонируется в Музее компьютерной истории в Маунтин-Вью, Калифорния]. ORDVAC и ILLIAC были построены в Университете штата Иллинойс, а затем ORDVAC был отправлен на Aberdeen Proving Ground. ORACLE и AVIDAC были построены в Аргонне, а затем ORACLE были отправлены в Оук-Ридж.

Одно поразительное различие между документами Burks, Goldstine и von Neumann 1946 года и современными руководствами по архитектуре - отсутствие машинного кода или макета инструкций. Сегодня новые архитектуры моделируются на существующих машинах, поэтому набор команд завершается и документируется до начала реализации оборудования. Команда разработчиков электронных компьютеров в IAS не имела машины для имитации предлагаемой архитектуры. Фактический набор команд был завершен во время реализации. Машина IAS вышла в строй в 1952 году. Неопределенные описания внедренного набора инструкций были опубликованы в открытой литературе Эстрином в течение первого года работы машины. В 1954 году Goldstine, Pomerene and Smith опубликовали окончательный отчет о физической реализации электронного вычислительного инструмента , в котором перечислены набор инструкций, реализованных на машине IAS.

Поскольку фактическая кодировка команд не была выпущена до восьми лет после первоначального отчета, каждая реализация битовой архитектуры IAS 40 имела уникальный и несовместимый набор команд. Ниже приведенные ссылки приводят к документам, которые содержат кодировку набора команд для каждой конкретной реализации архитектуры.

Другие ресурсы для 40-битных машин архитектуры IAS:


Разборщик для IBM 704

IBM 704 был первым коммерчески доступным научным компьютером с аппаратным арифметическим устройством с плавающей запятой и установил стандарт для научного программирования в 1950-х годах. Сегодня он по-прежнему интересен по нескольким причинам: во-первых, его затяжное влияние на языковую структуру программирования, а во-вторых, на сообщество пользователей и инструменты программирования, разработанные и распространяемые этим сообществом.

Подпрограммы CAR и CDR являются известными примерами из истории Lisp . Список этих двух подпрограмм см. В разделе « Написание и отладка программ » Стива Рассела (MIT AI Lab Memo AIM-6). Fortran был разработан как язык научного программирования для 704, и многие границы формата входного кода исходного кода фиксированной формы обусловлены особенностями архитектуры 704. 36-битный текстовый аппарат мог загружать только два бинарных слова из строки карты карты puch в память, что соответствовало первым 72 столбцам стандартной строки столбца 80. 704 используется 6-битное кодирование символов BCD, с 6 символами в слово. Поскольку машина была адресована словом, а не адресом, она имела смысл ограничить метки и имена переменных до 6 символов. Следовательно, метки и символ продолжения составляли первые 6 столбцов входной карты, а имена переменных были ограничены 6 символами. Три индекса индекса 704 и отсутствие косвенной адресации сделали многомерные массивы доминирующей структурой данных.

В 704 году появилась первая группа пользователей компьютера , SHARE , Образуя в южной Калифорнии аэрокосмическую промышленность ( современное воплощение ). Члены SHARE разработали общий сборщик, программу сборки SHARE или SAP, для обмена подпрограммами и библиотеками программ. Большое количество ПО SHARE все еще существует в машиносчитываемой форме , благодаря усердию Пола Пирса. Первые ленты в кодовой базе SHARE, состоящие из подпрограмм ассемблера и библиотеки, датированных 1955-1957 гг., Вероятно, представляют собой самую старую машиночитаемую общинную систему программирования. Коммерческий научный ассемблер IBM (программа сборки Fortran II или FAP) был смоделирован после SAP.

Последующие научные вычислительные системы IBM, логика 709 трубки и транзисторная логика 7030 (STRETCH), 7090 и 7094, в основном сохраняли двоичную совместимость с 704. SHARE продолжала разрабатывать всю операционную систему для IBM 709 (SHARE Operating System, Сокращенно SOS) [Shell, DL, et al. Система Share 709. (Шесть статей). Журнал ACM , Vol. 6, № 2, 1959, стр. 123-155]. Для System / 360 IBM, наконец, нарушила аппаратную совместимость и отправилась с эмуляционным решением для более старых научных приложений.

Программы SHARE были распространены в основном в исходной форме BCD, но некоторые из подпрограмм представлены в двоичном формате столбцов. Дисассемблер преобразует 160 байт стандартного ввода, представляя изображение двоичной карты столбца, в удобочитаемую форму. Дисассемблер сначала печатает ASCII-представление отверстий на карте, а затем двоичную разборку.

Ссылки по теме:


Atlas - эмулятор 1103A для UNIX-систем

Атлас является эмулятором для Univac Scientific 1103A. Помимо реализации всех 41 основных инструкций CPU, включая повтор ( RPjnw ), Atlas также имитирует функцию прерывания программы. Эмулятор работает как интерактивная программа командной строки и интерпретирует двоичный код машины 1103A, хранящийся в моделируемой памяти ядра / барабана. Средства, предоставляемые эмуляцией, включают прямой ввод машинного кода в восьмеричной форме, точки останова, разборку и ручную отладку. Имитированные устройства ввода / вывода включают в себя устройство для считывания бумажной ленты, бумажную ленту и электронную пишущую машинку.

Эмулятор написан на C и должен быть переносимым на большое количество UNIX-систем. Для этого требуется компилятор, который поддерживает два расширения C99 для стандарта C89: 64-битные целые числа (unsigned long long) и C ++-комментарии (//). Эмулятор в настоящее время работает на Linux (gcc или Intel cc для IA-32), SunOS (Sun cc или gcc для SPARC) и Darwin (gcc для PowerPC).


БАЗОВЫЕ деокканизаторы для персональных компьютеров HP Series 80 и Integral

Почетный член факультета факультета пришел в один день с 3,5-дюймовым гибким диском, полным программ BASIC от персонального компьютера Hewlett-Packard Integral . В 1985 году Integral PC был последним в линейке персональных компьютеров, выпущенных подразделением Corvallis, штат Орегон HP, которая была самой известной для разработки карманных программируемых калькуляторных продуктов с середины 1970-х до середины 1990-х. Ранние настольные рабочие станции Series 80 , примерно 1980-83, использовали пользовательские 8-разрядные микроконтроллеры HP, первоначально предназначенные для рынка калькуляторов, и загружали Непосредственно в интерпретатор BASIC через ПЗУ, как и многие 8-разрядные компьютеры той эпохи. Интегральный ПК использовал 16-битную версию Motorola 68000 и загрузился в UNIX (HP-UX 5.x) из довольно большого 512-килобайтного ROM. Пакет для IPC был разработан для совместимости с версией Series 80 BASIC.

Интегральный ПК отформатировал 77 цилиндров на диске. Я смог использовать стандартный флоппи-дисковод на ПК под управлением Red Hat Linux, setfdprm(8) и следующей записи /etc/fdprm, чтобы дискета отображалась на образ диска.

 # HP Integral Personal Computer
 Hpipc 1386 9 2 77 0 0x2A 0x02 0xDF 0x50
Генерация образа диска:
 Setfdprm /dev/fd0 hpipc
 Dd bs=9k count=77 if=/dev/fd0 of=disk.img

Однажды в виде образа диска утилиты IPC Peter Johnson, собранные на рабочей станции HP 9000/782 (C240) PA-RISC под управлением Debian Linux, были использованы для извлечения отдельных файлов из иерархической файловой системы Integral PC. Любая машина большого конца работала бы с утилитами Peter, которые были первоначально разработаны на SPARC, работающем под управлением Solaris.

Как и в случае с большинством микрокомпьютеров BASIC-переводчиков с 1980-х годов, технический BASIC Integral PC может СОХРАНИТЬ программы в исходной форме ASCII или хранить их во внутреннем двоичном токенизированном формате, используемом интерпретатором. Из более чем 130 программ на диске только два были SAVE d как ASCII. Скорость загрузки и компактность двоичного токенизированного формата сделали его логичным выбором для архивных целей.

Две из программ на диске были заархивированы как в ASCII, так и в двоичном токенизированном формате. Используя эти две программы и описание исходного формата HP-85 BASIC [NA Mills, HC Russell, KR Henscheid, «Улучшенный базовый язык для персонального компьютера», Hewlett-Packard Journal , Vol. 31, № 7, июль 1980 года, стр. 26]. Были написаны следующие детекторы.

Эти интерпретаторы BASIC использовали синтаксис обратной польской нотации (RPN) для каждой строки исходного файла. Детекнизованный вывод представлен в подробном RPN с одним токеном на строку, а не в инфиксной нотации с несколькими токенами на строку. Коды операций изменились, так как интерпретатор BASIC подвергся ревизии и портированию на каждую новую машину, поэтому коды операций, появляющиеся в одной версии детонатора, необязательно отображаются в других версиях. Поскольку характер доступных программ на диске был математическим, а не связанным с I / O, многие из кодов операций ввода / вывода неизвестны. Детекенизаторы далеки от завершения, но обеспечивают достаточный объем вывода, чтобы читать код и комментарии, а также программы портов для инфиниции языков нотации на современной платформе.

Более поздние версии интерпретатора для более поздних моделей машин не были способны читать токенированный двоичный формат из предыдущих моделей. Метод миграции кода, поддерживаемый HP, состоял из ASCII SAVE и GET .


Конвертер мягких шрифтов для терминалов серии VT200

Мое единственное домашнее компьютерное оборудование на протяжении более десяти лет было подключенным к модему терминалом Digital Equipment Corporation VT220 (GraphOn 230). Поскольку 8-разрядные наборы символов вступили в силу в середине 1990-х годов, аппаратный терминал начал показывать свои ограничения. Эта программа Perl преобразует стандартный шрифт 6x10 X Window System в формат распространения битовой карты (BDF) в шестую графику DEC и загружает верхнюю страницу на терминал. Затем терминал можно использовать с любыми стандартными наборами символов ISO Latin 8 бит.