Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Сб дек 16, 2017 2:45 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 30 сообщений ]  На страницу 1 2 След.
Автор Сообщение
 Заголовок сообщения: MPC early beta
СообщениеДобавлено: Вт июл 05, 2005 1:24 pm 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 689
Menuet Pascal Compiler - как и обещал, лежит на моём сайте. И как вы обещали - никаких претензий :) Говорить можно только хорошее :P

_________________
in code we trust


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Вт июл 05, 2005 3:22 pm 
Только хорошее? Ну ладно: Молодец! Так держать. Я знал что ты сможешь. =)
А если серьезно. Очень нужная штука, ща буду смотреть.


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 06, 2005 9:55 pm 
Не в сети

Зарегистрирован: Ср май 18, 2005 7:27 pm
Сообщения: 1001
Молодец! А список того, что он может, будет включен в следующую версию (типа Menuet Pascal поддерживает такие-то типы переменных, такие-то операции...)?


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 09, 2005 1:28 pm 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 689
Wildwest
Не думаю, что будут какие-то принципиальные расхождения со стандартом, так что описывать нужно будет очень мало.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 09, 2005 2:11 pm 
А GUI там можно будет писать?


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 09, 2005 2:14 pm 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 689
А что имеется в виду под "писать GUI"? Нельзя ли задавать вопросы конкретнее.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 09, 2005 8:25 pm 
зачем писать собственный компилятор, когда можно портировать FPC или не получится?


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 09, 2005 8:28 pm 
только прошу понять меня правильно!
Я нисколько не умаляю работу mike.dld даже рад что наконец-то я могу сделать что-то для MEOS...


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 09, 2005 11:14 pm 
Не в сети

Зарегистрирован: Ср май 18, 2005 7:27 pm
Сообщения: 1001
Sniper17
поговори с этим товарищем
http://menuet.2.forumer.com/index.php?showtopic=704


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Вс июл 10, 2005 9:56 am 
Очень хорошая вещь этот MPC, но пока, конечно же сыроватый. Как оказалось на нём можно создавать более или менее сложные проги. Хотя иногда бывают проблемы. Хочу высказать свои наблюдения по его исользованию. Возможно это кому-то поможет в разработке и некоторые из этих проблем будут исправлены в следующих версиях. Возможно что-то из этого - мои глюки, я не гарантирую что это абсолютная истина.
1. Делать var параметры в процедурах бесполезно: компилятор не ругается на них, он просто игнорирует наличие слова var.
2. Есть подозрение, что не поддерживаются слишком длинные имена функций
3. Похоже, что нельзя определить более 8-12(точное число пока не известно) глобальных переменных, иначе у компилятора происходит переполнение стека и он аварийно завершает свою работу
4. Начальное значение for может быть только 0, иначе вообще ничего не происходит (этот вопрос точно не изучен)
5. Если в ассемлерном коде используется локальная перменная или переменная Result, то она должна быть в верхнем регистре и перед ней должно быть “.__” (точка и два подчёркивания). Если это параметр, то он должен быть в верхнем регистре и перед ним должно стоять “__” (два подчёркивания)
6. Строковые константы компилятор как бы распознаёт, но потом подставляет на их место пустую строку
7. В конструкции if then else оператор идущий после then должен отделятся от else точкой с запятой, хотя в других компиляторах паскаля точка с запятой не нужна и не допустима в этом месте
8. В одном месте FASM прицепился к тому, что он не знает переменной .__RESULT, это было в функции
ReadMsg(StrAddr: Integer): Boolean;
Оказывается, если бы функция называлась по-другому то, всё было бы нормально. Видимо слово ReadMsg зарезервировано
9. Если ошибка находится в ассемблерном коде, то компилятор об этом ничего не скажет, а FASM просто тихо не создаст файл. Понять, есть ли ошибки можно только удалением файла .bin и перекомпиляцией. Если файл создался, то ошибок не было.
10. Дельфевские комментарии “//” не поддерживаются. В ассемблерных вставках нельзя использовать ассемблерные комментарии “;” и паскалевские “{…}” отдельно, но можно в комбинации “;{…}”


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Вс июл 10, 2005 5:09 pm 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 689
Sash
Спасибо тебе за исследование, и всем за интерес.

1. Если ты имеешь в виду использование var-параметров в ассемблерных вставках, то при передаче параметра как var фактически передаётся адрес переменной, т.е. для присвоения ей какого-либо значения нужно сделать, например, следующее:
Код:
mov eax,[var_param]
mov [eax],<присваиваемое значение>
. Если имелось в виду не это - уточни.
2. Длина идентификаторов (имён переменных, констант, подпрограмм и т.д.) ограничена 30-ю символами. Планируется увеличение предела или отказ от ограничения вообще.
3. 4. Посмотрю на досуге.
5. Совершенно верно, пока именно так. Текст между asm ... end копируется в выходной файл без изменений, и есть приколы во внутреннем представлении имён идентификаторов. Исправление ситуации планируется.
6. Если имеются в виду непосредственные операдны - проблем замечено не было. Все остальные случаи могут быть связаны с отсутствием типизации (пока что).
7. В курсе этого, не очень мешает при написании программ, но исправлю как можно быстрее.
8. Быть такого не может :)) Хотя не исключено.
9. Думаю сделать статическую линковку FASM.DLL в проекту, тогда ошибки, возвращённые FASM'ом, можно будет обработать в компиляторе.
10. “//” - поддерживаются. В ассемблерных вставках “;” должно работать (сам не проверял, но спец. кода по этому поводу не присутствует).

Далее, приведу выдержки из моего разговора с IPR'ом, чтобы было понятнее, какие ограничения/проблемы сейчас есть:
Цитата:
[05.07.2005 12:42:52] >> вложенные процедуры использовать можно, но обращаться к переменным родительских процедур нельзя (не относится к глобальным переменным)
[05.07.2005 12:43:32] >> код лучше писать ПРАВИЛЬНЫЙ, иначе в некоторых случаях может сгенериться неверный асм-листинг
[05.07.2005 12:44:05] >> так как нет типизации, нужно, например, вместо
while true do
писать
while 1 = 1 do
[05.07.2005 12:44:58] >> при объявлении констант или инициализации переменных инициализирующее выражение не должно быть сложным
[05.07.2005 12:45:05] >> т.е. писать 4 вместо 2*2
[05.07.2005 12:46:08] >> инициализация переменных - как по одной, так и группами (всем присваивается инициализирующее значение), например:
var
a: integer = 5; {a = 5 }
b,c,d: integer = 10; { b = c = d = 10 }
[05.07.2005 12:46:24] >> типизированных констант нету (ясно почему :) )
[05.07.2005 12:47:26] >> да, и вместо модулей, используй директиву {$I "имя файла"} (имя в кавычках)

_________________
in code we trust


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 11, 2005 12:52 am 
Да, про var параметры я бы и сам мог догадаться


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 11, 2005 1:00 am 
Да, мне довольно понравилось. И осуществилась моя мечта нормальный компилер, нормального
языка для меоси. СПАСИБО MIKE.DLD!!!
З.Ы. Удачи в дальнейшем!


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 29, 2005 9:02 am 
program sum;
var a,b,c:real;
begin
repeat
readln(a,b);c:=a+b;
Writeln(c);readln
until c=100;
end.
А что не компилирует? :D


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 29, 2005 11:05 am 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 689
А в Менуете есть нативная поддержка консоли?


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 30 сообщений ]  На страницу 1 2 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB