Board.KolibriOS.org https://board.kolibrios.org/ |
|
Высокоуровневый ассемблер https://board.kolibrios.org/viewtopic.php?f=2&t=3130 |
Page 3 of 5 |
Author: | e-andrew [ Thu Sep 24, 2015 5:03 pm ] |
Post subject: | Re: Высокоуровневый ассемблер |
Pathoswithin wrote: Может коллизия? Хотя, всё равно не понял.. Опечатка. Суть в том, что все функции должны согласовывать номера регистров, чтобы не использовать одни и те же. Если проект чисто свой без сторонних кусков кода/либ, то тут ещё можно придумать систему (скажем, по тысяче регистров на файл (если в регистр можно засунуть массив)), иначе же будет каша. |
Author: | paulcodeman [ Thu Sep 24, 2015 5:46 pm ] |
Post subject: | Re: Высокоуровневый ассемблер |
Исправил много баг. Свел утечку памяти к минимуму. Операции выполняются в 3 раза быстрее, чем в javascript. Добавил функции для получения длины текста, символ из кода ascii, думаю добавитэь разные кодировки, выход из программы с завершением всех созданных процессов. |
Author: | Pathoswithin [ Thu Sep 24, 2015 7:23 pm ] |
Post subject: | Re: Высокоуровневый ассемблер |
А у тебя JIT-компиляция планируется? Без неё высокой скорости не добиться. |
Author: | paulcodeman [ Thu Sep 24, 2015 11:30 pm ] |
Post subject: | Re: Высокоуровневый ассемблер |
Pathoswithin wrote: А у тебя JIT-компиляция планируется? Без неё высокой скорости не добиться. Конечно, но это уже в конечной стадии скорее всего. Я вот думаю на счет синтаксиса оттолкуться ли от асма? Code: #define cls,'console cls' |
Author: | paulcodeman [ Fri Sep 25, 2015 2:57 pm ] |
Post subject: | Re: Высокоуровневый ассемблер |
Организовал вызов функции по адресу Пример Code: #define func1, '%1' // даем знать препроцессору, что func1, как %1 Зачем это нужно? Скоро узнаете ![]() |
Author: | paulcodeman [ Fri Sep 25, 2015 6:48 pm ] | ||
Post subject: | Re: Высокоуровневый ассемблер | ||
Теперь возможна загрузка obj файлов. Вот пример Code: #define init_console, '%1' Замете, очень удобно, зная только название функции и что за аргументы передавать можно вызвать любую функцию, параметры передаются в формате не в stdcall, поэтому в обратном порядке, возможно потом поменяю. Так же добавил Специальные переменные, которые содержат путь где находиться виртуальная машина, название файла виртуальной машины, папка где находиться виртуальная машина ( пригодиться для загрузки и установки настроек ), путь/название/папка откуда запущен файл приложения для виртуалки. P.S. все названия хэшируются, все номера переменных тоже, разрешение коллизий везде, поэтому думаю встроить массивы не составит труда.
|
Author: | paulcodeman [ Sat Sep 26, 2015 2:25 am ] |
Post subject: | Re: Высокоуровневый ассемблер |
Ура! Появилось возможность создавать первый объект - это окно. Пример Code: object window,%1 // определим переменную 1, как окно |
Author: | paulcodeman [ Sat Sep 26, 2015 3:58 pm ] |
Post subject: | Re: Высокоуровневый ассемблер |
Оптимизировал еще ВМ. Теперь инкремент команда, которая находиться в 10 000 000 интераций выполняется за 4 секунды, когда в то же время js выполняется тоже самое за 18 сек. на моей машине. 18/4 = 4.5 раза быстрее, когда раньше было 3. Прирост на 1.5 раза. |
Author: | Pathoswithin [ Sat Sep 26, 2015 7:32 pm ] |
Post subject: | Re: Высокоуровневый ассемблер |
Что всё равно дофига медленней чем скомпилированный код. ... или я не понял. Ты хочешь на основе этого интерпретатора сделать поддержку javascript для браузера? |
Author: | paulcodeman [ Sat Sep 26, 2015 8:25 pm ] |
Post subject: | Re: Высокоуровневый ассемблер |
Pathoswithin wrote: Что всё равно дофига медленней чем скомпилированный код. ... или я не понял. Ты хочешь на основе этого интерпретатора сделать поддержку javascript для браузера? скомпилированный код с динамической типизацией? Вроде не знаю таких, которые быстрее работать будут. За все надо платить, за комфорт кодинга платишь скоростью. P.S. можно прикрутить js, для этого нужно сделать транслятор js в коды для VM. 1 этап когда запускается скрипт транслируется в байт код для ВМ. 2 этап запуск самого байт кода. Сделаю 2 этап он сложнее чем 1, а там я думаю трансляцию не составит труда написать. Вот думаю может для ВМ браузер напишу, уж быстрее писаться будет, чем на Си, уж тем более чем на асм. И при модернизации ВМ модернизируются все проги включающие в эту ВМ. |
Author: | paulcodeman [ Sat Sep 26, 2015 8:51 pm ] |
Post subject: | Re: Высокоуровневый ассемблер |
Pathoswithin wrote: Что всё равно дофига медленней чем скомпилированный код. ... или я не понял. Ты хочешь на основе этого интерпретатора сделать поддержку javascript для браузера? Если сравнить скорость работы скомпилированной на си программы, то она в 100 быстрее получается, но это не интерпретатор и со статической типизацией. Я думаю 100 раз это уже не так много. Правда нет возможно провести эксперемент с java. |
Author: | Pathoswithin [ Sat Sep 26, 2015 11:55 pm ] |
Post subject: | Re: Высокоуровневый ассемблер |
Благодаря JIT-компиляции java работает почти с той же скоростью что и си, но жрёт феерическое количество памяти и довольно долго запускается. А вот без JIT интерпретируемый язык является жутко медленным безумием. pavelyakov wrote: скомпилированный код с динамической типизацией? Несколько лет пытаюсь понять, в чём заключается комфорт от типов данных? Пишу на ассемблере именно потому, что там их нет.
Вроде не знаю таких, которые быстрее работать будут. За все надо платить, за комфорт кодинга платишь скоростью. |
Author: | paulcodeman [ Sat Sep 26, 2015 11:59 pm ] |
Post subject: | Re: Высокоуровневый ассемблер |
Pathoswithin wrote: Благодаря JIT-компиляции java работает почти с той же скоростью что и си, но жрёт феерическое количество памяти и довольно долго запускается. А вот без JIT интерпретируемый язык является жутко медленным безумием. pavelyakov wrote: скомпилированный код с динамической типизацией? Несколько лет пытаюсь понять, в чём заключается комфорт от типов данных? Пишу на ассемблере именно потому, что там их нет.Вроде не знаю таких, которые быстрее работать будут. За все надо платить, за комфорт кодинга платишь скоростью. Тем что меньше писать нужно и меньше тратить времени. |
Author: | paulcodeman [ Sun Sep 27, 2015 12:00 am ] |
Post subject: | Re: Высокоуровневый ассемблер |
Pathoswithin wrote: Благодаря JIT-компиляции java работает почти с той же скоростью что и си, но жрёт феерическое количество памяти и довольно долго запускается. А вот без JIT интерпретируемый язык является жутко медленным безумием. pavelyakov wrote: скомпилированный код с динамической типизацией? Несколько лет пытаюсь понять, в чём заключается комфорт от типов данных? Пишу на ассемблере именно потому, что там их нет.Вроде не знаю таких, которые быстрее работать будут. За все надо платить, за комфорт кодинга платишь скоростью. Вот и остается выбирать или быстродействие, или память. |
Author: | paulcodeman [ Sun Sep 27, 2015 12:23 am ] |
Post subject: | Re: Высокоуровневый ассемблер |
Pathoswithin wrote: Благодаря JIT-компиляции java работает почти с той же скоростью что и си, но жрёт феерическое количество памяти и довольно долго запускается. А вот без JIT интерпретируемый язык является жутко медленным безумием. Почитал более подробно про JIT компиляцию, в принципе легче, когда имеешь байт код, который уже есть компилировать. Главное понять принцип как это реализовано. |
Page 3 of 5 | All times are UTC+03:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |