Рубрика «компиляция» - 3

Какой язык использовали для написания самых первых программ для самых первых компьютеров с хранимой программой?

Двоичный машинный язык, конечно.

Почему?

Очевидно потому, что не было символьного ассемблера. Первые программы необходимо было писать двоичным кодом.

Насколько легче писать программы на ассемблере, чем на двоичном машинном языке?

Намного легче.

Можно цифру? Во сколько раз легче?

Ну, блин, ассемблер делает всю тяжелейшую «рутинную» работу для вас. Т.е. он рассчитывает все физические адреса. Он составляет все физические машинные команды. Он обеспечивает невозможность выдачи физически нереализуемых команд, например, адресацию за пределы адресного пространства. И затем он создаёт легко загружаемый двоичный вывод.

Экономия объёмов работы огромная.
Читать полностью »

Суперскалярный стековый процессор: оптимизация - 1
Продолжение серии статей, разбирающих идею суперскалярного процессора с
OoO и фронтендом стековой машины. Тема данной статьи — оптимизация обращений к памяти.

Предыдущие статьи:
1 — описание работы на линейном куске
2 — вызов функций, сохраняем регистры
3 — вызов функций, взгляд изнутри
Читать полностью »

Суперскалярный стековый процессор: подробности - 1
Продолжение серии статей, разбирающих идею суперскалярного процессора с
OoO и фронтендом стековой машины.
Тема данной статьи — вызов функций, вид изнутри.
Читать полностью »

Суперскалярный стековый процессор: продолжаем скрещивать ужа и ежа - 1
Продолжение статьи, где удалось продемонстрировать, что фронтенд стековой машины вполне позволяет спрятать за ним суперскалярный процессор с OoO.
Тема данной статьи — вызов функций.
Читать полностью »

Суперскалярный стековый процессор: скрещиваем ужа и ежа - 1
В данной статье мы будем разрабатывать (программную) модель суперскалярного процессора с OOO и фронтендом стековой машины.
Читать полностью »

image

Вчера в ЖЖ пользователь timon_timonich опубликовал пост, в котором предлагает к просмотру видео собственного создания. В ходе изготовления ролика он использовал более ста гигабайт данных, которые свободно скачал с одного из официальных сайтов NASA. В итоге, спустя месяц работы, получилось видео, состоящее более чем из 6000 кадров и длительностью почти четыре минуты.


Читать полностью »

Случаются времена, когда для компиляции сборки или приложения Visual Studio использовать не представляется возможным. Звучит это дико, но все-таки иногда случается. Например, необходима компиляция DLL из конфигуратора самописной SCADA-системы. Данный вопрос можно решить использованием класса CSharpCodeProvider. Но мы копнем глубже и создадим WEB Forms приложение без использования Visual Studio. Нашим основным инструментом станет csc.exe. Компилятор, поставляемый вместе с .NET Framework. Матерые программисты пустят скупую слезу, вспомнив свои первые шаги в .NET, а начинающим будет полезно увидеть метод применения компилятора и построение класса WEB Forms приложения. Итак, начнем…
Читать полностью »

Как известно, в языке Java существуют вложенные (nested) классы, объявленные внутри другого класса. Их даже четыре разновидности — статические вложенные, внутренние (inner), локальные (local) и анонимные (anonymous) (в этой статье мы не затрагиваем лямбда-выражения, появившиеся в Java 8). Всех их объединяет одна интересная особенность: виртуальная машина Java не имеет понятия об особенном статусе этих классов. С её точки зрения это обычные классы, расположенные в том же пакете, что и внешний класс. Вся работа по преобразованию вложенных классов в обычные ложится на компилятор. И здесь любопытно посмотреть, как разные компиляторы с ней справляются. Мы посмотрим на поведение javac 1.8.0.20 и компилятора ecj из Eclipse JDT Core 3.10 (идёт в комплекте с Eclipse Luna).
Читать полностью »

imageimage
В интернете есть множество заметок о том, как собирать freetype под iOS.
Все эти заметки объеденины общей характеристикой — они не работают.
Дело в том, что все инструкции оперируют gcc для сборки библиотеки, но начиная с XCode 5 gcc не входит в поставку и для сборки под iOS надо использовать clang.
Ни одной заметки о том, как компилировать правильно — нет.
Исправляем эту несправедливость.

Читать полностью »

Математические выражения в .NET (разбор, дифференцирование, упрощение, дроби, компиляция)
Мне со школьных времен был интересен алгоритм вывода аналитических производных и упрощения выражений. Данная задача была актуальна впоследствии и в вузе. Тогда-то я реализовал ее, только получилось все не так, как хотелось: вместо кода IL у меня просто генерировался C# код в текстовом виде, сборки не выгружались, ну и к тому же не было возможности вывода производных в аналитическом виде. Однако потом я решил все-таки реализовать такую библиотеку, так как интерес остался. Стоит отметить, что таких библиотек в интернете большое количество, но нигде я не нашел именно этапа компиляции выражений в IL код, т.е. по сути везде выполняется интерпретация, которая не столь эффективна, в отличие от компиляции. Ну и к тому же я это разрабатывал чисто для себя, для изучения новых технологий, особо не надеясь, что результат моих трудов может где-нибудь потребоваться.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js