Вход
Быстрая регистрация
Если вы у нас впервые: О проекте FAQ
1

Как была написала программа для написания программ?

Виктория983 [424] 1 неделю назад

Как это было сделано, если и эта программа должна была быть где-то и как-то написана?

3

Есть единственный язык, который может понимать процессор - это машинный язык. Команды в нём - всего-навсего представляют собой числовой код. Когда-то так и программировали, исключительно кодами. Затем стали применять мнемонические языки, более пригодные для человеческого восприятия, при этом это были языки 1:1, т.е. одна мнемоническая команда определяла один код, одну машинную команду. С некоторым расширением от соотношения 1:1 существует язык Ассемблер. Он, в принципе так и остался до сего дня языком программирования на машинном уровне.

Затем стали появляться языки более высокого уровня, где уже одна команда на этих языках могла соответствовать нескольким машинным командам. Этот процесс шёл и шёл. Языки программирования становились всё формализованнее и формализованнее. Можно уже было описывать несколькими командами на этих языках целые функциональные блоки из машинных команд. Появились библиотеки таких готовых блоков.

Оставалось совсем чуть-чуть до идеи создания такой программы, которая могла бы по желанию программиста собирать из этих заранее готовых блоков массив машинных кодов, почти готовый к использованию. Таким образом получалась программа, способная 'писать' другие программы. На самом деле это было не совсем так. Ничего эта программа не сочиняла. Она просто 'вытаскивала' из библиотеки готовых блоков нужный в данный момент программисту блок и 'притирала' по возможности этот блок к остальному тексту. Если эта 'притирка' не получалась, или нужного блока не находилось (а потребности всегда превосходят наличие), программисту приходилось самому вручную писать 'прокладки' между этими блоками на языке более низкого уровня, чем этот язык блочного программирования.

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

А вот то, чему стоит подивиться и чего я так и не мог понять, это то заявление Ричи, что транслятор с языка "С" сам написан на языке "С". Вот это непонятно вообще. Разве что, для трансляции этого транслятора использовался какой-то начальный, примитивный транслятор, без наворотов, чистый функционал.

автор вопроса выбрал этот ответ лучшим
0

Очевидно, все функции такой программы выполнялись программистом. Полученный машинный код вводился непосредственно в память компьютера с консоли. Или другого доступного устройства ввода.

часть программы для компьютера Apple II

Знаете ответ?
Есть интересный вопрос? Задайте его нашему сообществу, у нас наверняка найдется ответ!
Делитесь опытом и знаниями, зарабатывайте награды и репутацию, заводите новых интересных друзей!
Задавайте интересные вопросы, давайте качественные ответы и зарабатывайте деньги. Подробнее..
регистрация
OpenID