←На заглавную страницу проекта Д

К портируемости программ

§ 1. Введение

Когда я извещал остальных о новом выпуске языка Д (это была модификация LS-Д), то в глазах некоторых я увидел горечь и упрек. “Оказывается”, — говорили мне — “ты написал его на языке ассемблера, а ведь он не портируем”. Я подумал и решил, что они не одиноки в своих заблуждениях, поэтому и решил написать эту статью. Ведь если заблуждения не раскрывать и не показывать правильных ход мысли, они будут расти, на их основе создадутся новые и так далее. А такой исход — плохо.

§ 2. Возможно ли портировать

Ключевой момент: выяснить базис. Теоретическое обоснование данного тезиса очень пространно да и не нужно, порэтому ограничимся простыми, проясняющими суть, эмпирическими примерами.

Базис языка ассемблера — арифметические инструкции и работа с памятью. Поэтому он поритруем на любые машины, где сть эти два аппарата.

А вот базис языка Д например, вообще русский язык, поэтому программы на Д можно портировать не только на персноальные ПК, но и в саму реальную жизнь (например на армейский язык программирования).

§ 3. Как портировать

Есть несколько способов:

  1. Исходный код можно преобразовать сразу в исходный код языка для ПК другой архитектуры.
  2. Если пункт 1 неприменим, то нужно применять язык-посредник. Например есть программа
    	mov	eax, [value_a]
    	mov	ebx, [value_b]
    	xor	eax, ebx
    	mov	[value_c], eax
    
    Преобразуем её код на русский язык
    	Выполнить с переменными value_a и value_b
    	операцию исключающее-или 
     и
     	поместить результат 
     в 
     	переменную value_c.
    
    Получившийся код нерудно реализовать на чем угодно.

§ 4. Вывод

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

)c( 23:05 05.08.2006, okante

Hosted by uCoz