Продвинутый векторный транслятор — язык программирования и кросс-компилятор под DOS, GNU/Linux, KolibriOS, Windows и другие x86-платформы

Switch to English

[О программе] [Загрузки] [ЧаВО] [Документация]

Главное окно

Тип Языки программирования, генераторы кода
Написан на Lazarus IDE
Операционные системы Windows XP/7/8, WINE
Системные требования SSE3
Языки интерфейса Английский, Русский
Первый выпуск 23 сентября 2017
Последняя версия 0.3.2
Дата последней версии 28 марта 2018
Читаемые форматы данных исходный код ПВТ .avt, проект ПВТ .avtproj
Создаваемые форматы данных исходный код fasm .asm
Лицензия GNU GPL 3, GNU LGPL 3

[К началу]

Продвинутый векторный транслятор (сокращённо: ПВТ) – язык программирования высокого уровня и свободный кросс-компилятор, который создаёт исходный код на языке flat assembler. Генерирует код любой разрядности по выбору программиста: 16, 32 и 64 бита. Если выбрать генерацию 64-битного кода, то будут доступны векторные типы данных и операции над ними, а также весь набор типов данных и инструкций ПВТ. Часть кода может быть написана непосредственно на ассемблере, в том числе и с использованием макросного движка flat assembler.

Вам так же понадобится flat assembler для компиляции сгенерированного исходного кода.

Документацию на язык программирования и компилятор можно посмотреть здесь.

загрузки

[К началу]

Загрузить Продвинутый векторный транслятор
В этом архиве вы найдёте сам компилятор, подсветку синтаксиса для языков ПВТ и fasm, которую можно импортировать в программу Notepad++ и примеры программ всех трёх разрядностей.

Все версии

Контрольные суммы

что можно написать на пвт?

[К началу]

Всё то же самое, что и на flat assembler: программы под DOS, GNU/Linux, KolibriOS, MacOS, Windows и другие x86-платформы, ядра операционных систем, загрузчики (bootloaders). Однако загрузочные секторы всё-таки лучше писать на flat assembler, поскольку их размер не должен превышать 512 байт.

чаво

[К началу]

В: Зачем нужны типы данных yvector, zvector, fvector, ultra32 и ultra64, если ними невозможно воспользоваться?
О: Это типы данных AVX-512. Они будут введены в ПВТ как только процессоры с набором инструкций AVX-512 будут широко использоваться. Это произойдёт примерно в 2018–2019 годах.

В: Почему при написании 16-ти и 32-битных программ нельзя пользоваться некоторыми типами данных?
О: Из-за того, что в процессорах x86 нет полного набора инструкций и регистров для их полной поддержки. Например, нельзя использовать тип long из-за того, что все регистры общего назначения 32-битные, а набор инструкций SSE3 не располагает инструкцией деления целых чисел. Существует длинная арифметика, но она не была реализована в ПВТ.

В: Почему при написании 16-битных программ нельзя пользоваться типом int, ведь все регистры общего назначения 32-битные?
О: Это из-за ограничений на размер кода программы: он не должен превышать примерно 47 килобайт. В одном 64-килобайтном сегменте должны располагаться код программы, куча и прочие данные, если они есть. 32-битные инструкции длиннее на 1 байт, чем 16-битные, что приведёт к увеличению размера кода, а в 16-битной программе каждый байт на счету.

Исходный код

[К началу]

Исходный код ПВТ (для компиляции используйте Lazarus IDE и библиотеки, исходный код которых можно загрузить по нижеследующей ссылке)

Общий исходный код (необходим для компиляции)

Контрольные суммы