URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 45422
[ Назад ]

Исходное сообщение
"Описание хода процесса компиляции исходного текста в исполняемую программу"

Отправлено opennews , 21-Ноя-08 18:34 
"Как происходит компиляция" (Часть 1 (http://rus-linux.net/lib.php?name=MyLDP/algol/compilation/co...), Часть 2 (http://rus-linux.net/lib.php?name=MyLDP/algol/compilation/co...)) - описание хода процесса компиляции исходного текста в исполняемую программу.

URL: http://rus-linux.net/lib.php?name=MyLDP/algol/compilation/co...
Новость: http://www.opennet.me/opennews/art.shtml?num=19031


Содержание

Сообщения в этом обсуждении
"Описание хода процесса компиляции исходного текста в исполня..."
Отправлено pavlinux , 21-Ноя-08 20:12 
Баянисто!

1. Пессимист наверно, все main()  возвращают 1 (то есть ошибка).

2.
>Я не силен в языке ассемблера, однако

Внушает доверие и поднимает авторитетность

3.
> и инструкция "переход, если меньше" ("Jump if Less Than", jle).

JLE - Это Jump Less or Equal == ПМР (Прыгаем если Меньше или Равно)
Если меньше - это JL

-----------------

Там код напомнил не решенную задачу

В ассемблерном виде уравнение  "if (x < 5) then do ()"  выглядит так:

      cmpl    $4, -8(%ebp)
      jle     .L3

Сравниваем значение указанное в EBP c 4 !!! и по результату переход на .L3

Получается это код будет так if (x <= 4) then do ()

-------

Почему я знаю, - на один цикл меньше.

Как написать условие на С код, так что было

      cmpl    $5, -8(%ebp)
      jl     .L3


"Описание хода процесса компиляции исходного текста в исполня..."
Отправлено Square , 21-Ноя-08 22:15 
>Баянисто!

вы вот это осознали?
"Студенты моей группы не были программистами. Они играли роль аналитиков, получающих отчеты об ошибках из проекта компилятора."

поэтому язвительные замечания в адрес автора статьи - минимум глупы...



"Описание хода процесса компиляции исходного текста в исполня..."
Отправлено pavlinux , 22-Ноя-08 00:15 
Я сторонник Перфектционизму :)