Pull to refresh
  • by relevance
  • by date
  • by rating

Pyastra — транслятор кода на языке Python в ассемблер для архитектуры PIC

Lumber room
Pyastra — это транслятор кода на языке Python в ассемблер. Он принимает исходный файл, написанный на Python и, если код не содержит ошибок, то генерирует ассемблерный файл, который вы можете скомпилировать в HEX-файл, используя ваш любимый PIC ассемблер (gpasm, mpasm или другие, совместимые с ними).
Читать дальше →
Total votes 7: ↑6 and ↓1 +5
Views 1.4K
Comments 10

Assembler для Brainfuck

Abnormal programming *Brainfuck *
Sandbox
Одним холодным майским днем от скуки решил я таки приступить к изучению этого удивительного языка — Brainfuck'a.
Его интерпретаторы публиковали на Хабре уже очень много раз.
Но мне хотолось изучить поглубже сам язык и алгоритмы на нем, а не писать очередной интерпретатор. Поэтому было решено сделать из мухи слона компилятор какого-нибудь высокоуровневого языка в brainfuck.
Однако очень быстро начался реальный brainfuck: отсутствие оператора if, отсутствие произвольного доступа к ячейкам и куча других проблем сразу свалилась на меня. Пришлось повременить с высокоуровневым языком и сделать для начала ассемблер, в который и будет компилироваться высокоуровневый язык.
О реализации ассемблера под катом.
Читать дальше →
Total votes 44: ↑42 and ↓2 +40
Views 22K
Comments 12

Дональд Кнут: про ассемблер, транслятор и грамотное программирование

Edison corporate blog Programming *Algorithms *Professional literature
Translation
"Literate programming (грамотное программирование) — отношение к компьютерным программам, как к литературе: компьютерная программа пишется не столько для компьютера, сколько для людей, чтобы люди могли ее прочитать. И поскольку я пишу программы, то я, в некотором роде, учитель."

image


«Давайте изменим традиционные приоритеты в создании программ: вместо представления о нашей задаче как о создании инструкций «Что делать?» для компьютера сконцентрируемся на объяснении другим людям описаний нашего видения того, что под управлением программы должен делать компьютер.»
Total votes 32: ↑29 and ↓3 +26
Views 22K
Comments 6

Эзотерический язык, транслирующийся в шаблоны C++

Abnormal programming *Programming *C++ *Functional Programming *
КПДВ с примерами кода Шаблоны C++ — полный по Тьюрингу язык, на котором можно писать compile-time программы. Только вот синтаксис рассчитан на описание параметризованных типов и слабо приспособлен к ясному выражению чего-то более сложного. В этой статье рассмотрим, как типы и шаблоны становятся значениями и функциями, а также узнаем, к чему привела попытка автора создать свой функциональный язык, транслирующийся в шаблоны C++. Для прочтения текста знания в области функционального программирования почти не требуются.
Читать дальше →
Total votes 59: ↑59 and ↓0 +59
Views 18K
Comments 10

Стековая машина на моноидах

Programming *Haskell *Mathematics *Functional Programming *
Tutorial

Не так давно на Хабре появилась отличная и вдохновляющая статья про компиляторы и стековые машины. В ней показывается путь от простой реализации исполнителя байт-кода ко всё более и более эффективным версиям. Мне захотелось показать на примере разработки стековой машины, как это можно сделать Haskell-way.


На примере интерпретации языка для стековой машины мы увидим, как математическая концепция полугрупп и моноидов помогает разрабатывать и расширять архитектуру программы, как можно использовать алгебру моноидов и каким образом можно строить программы в форме набора гомоморфизмов между алгебраическими системами. В качестве рабочих примеров мы сначала построим интерпретатор, неотделимый от кода в виде EDSL, а потом научим его разным штукам: вести запись произвольной отладочной информации, отделять код программы от самой программы, проводить простой статический анализ и вычислять с различными эффектами.


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

Читать дальше →
Total votes 49: ↑49 and ↓0 +49
Views 13K
Comments 28

Новый язык программирования Mash

Perfect code *Virtualization *Compilers *ООP *
Sandbox
На протяжении нескольких лет я пробовал свои силы в разработке своего языка программирования. Мне хотелось создать на мой взгляд максимально простой, полнофункциональный и удобный язык.

В этой статье я хочу осветить основные этапы своей работы и для начала описать созданный концепт языка и его первую реализацию над которой сейчас работаю.
Читать дальше →
Total votes 86: ↑70 and ↓16 +54
Views 46K
Comments 201

Мост из мира .NET в мир JavaScript

Website development *Open source *JavaScript *.NET *Development of mobile applications *
Sandbox
Хочу поделиться интересной находкой — Bridge.net. Если в двух словах, это фреймворк, позволяющий транслировать C# код в JavaScript. Идея, которая движет командой разработчиков очень проста и понятна — транслировать логику настолько идентично, насколько это возможно. Что радует, если вспомнить все различия и специфику этих языков.


Читать дальше →
Total votes 11: ↑9 and ↓2 +7
Views 5.5K
Comments 9

Ещё один способ использования python в браузере (и не только)

Python *JavaScript *Compilers *
Sandbox

Весной 2020 года я впервые попробовал себя в разработке сайтов бэкенд я писал на питоне а на фронте пришлось использовать js и он вызвал у меня отторжение(тут надо уточнить, что я не считаю js ужасным языком, просто он мне не понравился). Не долго думая я начал писать транслятор с питона в явускрипт(а если бы погуглил то нашел бы это https://brython.info/, https://www.transcrypt.org/). об этом трансляторе и пойдет речь.

Читать далее
Total votes 26: ↑15 and ↓11 +4
Views 9.1K
Comments 26

Как работают Android-приложения в Windows 11? Разбор

Droider.Ru corporate blog Development of mobile applications *Game development *Development for Android *Development for Windows *
Мы все очень ждали презентации Windows 11, но как-то нам ее подпортили. Незадолго до презентации слили рабочий билд и поэтому во время ивента ничего по-настоящему нового мы не увидели. Кроме одной вещи: Android-приложения на винде!

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


Ведь не так давно Microsoft сильно облажались со своей Windows на архитектуре ARM, в которой очень плохо работали x86-приложения. А если у них ничего не получилось тогда, то по какой причине получится сделать фактически тоже самое сейчас, но только наоборот?

Разбираясь в этих вопросах мы буквально прозрели. И поняли, что на самом деле у Microsoft очень далеко идущие планы.
Читать дальше →
Total votes 25: ↑17 and ↓8 +9
Views 9.7K
Comments 23