ПК-01 ЛЬВОВ

форум о ПК-01,02 "Львов"
Текущее время: 26 апр 2018, 18:58

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC + 2 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 214 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14, 15  След.
Автор Сообщение
 Заголовок сообщения: Re: DprToLvt (PasToLvt)
СообщениеДобавлено: 03 дек 2012, 14:19 
Не в сети
Site Admin
Аватар пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщений: 994
QDialogs - оно самое. Ищите замену, вроде обычный Dialogs или что-то такое.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DprToLvt (PasToLvt)
СообщениеДобавлено: 03 дек 2012, 14:23 
Не в сети
Аватар пользователя

Зарегистрирован: 13 фев 2012, 15:32
Сообщений: 317
Откуда: Приморский край. Уссурийск
sas9568635 писал(а):
MARAT_BEST писал(а):
у вас гдето (возможно при компиляции библиотеки, в uses попала ссылка на данный DLL)

Код:
    uses
  Classes, Forms, Windows, SysUtils, Graphics, IdGlobal,  QDialogs,
  UnitMain in 'UnitMain.pas',
  EkranLVUnit in 'EkranLVUnit.pas' {MainFormEmu},
  RegViewLVUnit in 'RegViewLVUnit.pas' {RegViewForm},
  I8080 in 'I8080.pas',
  I8080proc in 'I8080proc.pas',
  ExecuteLV in 'ExecuteLV.pas',
  Delays in 'Delays.pas',
  SAStypes in '..\..\Poject\UNITdelphi\SAStypes.PAS',
  SASFiles in '..\..\Poject\UNITdelphi\SASFiles.pas',
  SASstring in '..\..\Poject\UNITdelphi\SASstring.PAS',
  Memory_ in 'Memory_.pas',
  FormatLVT in 'FormatLVT.pas',
  FormatE3 in 'FormatE3.pas',
  FormatEMU in 'FormatEMU.pas',
  SASChar in '..\..\Poject\UNITdelphi\SASChar.PAS',
  FormatSAV in 'FormatSAV.pas';

В УПОР НЕВИЖУ ! :-)
Я так подозреваю может из-за примениея типа данных INT64.

на вскидку QDialogs ? и плюс гдето может быть в следующих модулях также в uses

EkranLVUnit.pas
RegViewLVUnit.pas
.....


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DprToLvt (PasToLvt)
СообщениеДобавлено: 03 дек 2012, 14:39 
Не в сети

Зарегистрирован: 20 апр 2012, 16:00
Сообщений: 372
Откуда: Конотоп
MARAT_BEST писал(а):
на вскидку QDialogs ? и плюс гдето может быть в следующих модулях также в uses....

Позже попробую убрать QDialogs, но раз я его когда-то (уже не помню зачем) вставил - значит он нужен !


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DprToLvt (PasToLvt)
СообщениеДобавлено: 19 дек 2012, 17:21 
Не в сети

Зарегистрирован: 20 апр 2012, 16:00
Сообщений: 372
Откуда: Конотоп
Уважаемые форумчане!
Уже не знаю как и вопрос задать... :-) а также незнаю что искать:-)
вообщем...
Каким образом можно быстро и грамотно «распознавать» текст (код) языка паскаля (дельфи)?... т.е. я было начал писать подобное...
если «program» тогда ...
если «uses» тогда ...
если «Var» тогда... пробелы, табы, вводы - пропустить... «вычислить» переменную.... пробелы, табы, вводы, пропустить... ожидать... либо запятую... либо двоеточие... о господи:-), если еще одна переменная опять повторить - пробелы, табы, вводы пропустить... а предыдущие переменные «помнить» так как их тип будет указан после двоеточия... а также после указания типа возможно еще «=значение» и т. д.
Вообщем, у меня началось головокружение... :-)
Вот и подумал, может существует какой-то более простой способ «распознавания» этого всего страхомудия!?.. иль кто подскажет что мне необходимо искать в инете для реализации этого?!... а может вообще готовый модуль существует подточенный под распознавание паскаля?!...


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DprToLvt (PasToLvt)
СообщениеДобавлено: 19 дек 2012, 18:50 
Не в сети
Site Admin
Аватар пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщений: 994
Скажу однозначно - простого способа нет. Вы, как я понял, хотите написать компилятор паскаля под i8080. Труд, надо сказать, огромный. Советую начать с чтения спецификаций этого языка а так же почитать литературку по компиляторах вобще (для Си ее будет побольше).


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DprToLvt (PasToLvt)
СообщениеДобавлено: 19 дек 2012, 19:28 
Не в сети

Зарегистрирован: 20 апр 2012, 16:00
Сообщений: 372
Откуда: Конотоп
Zelya писал(а):
Скажу однозначно - простого способа нет.

Спасибо за ответ ! Но Ваш ответ меня разочаровал! :D :( :wink: догадывался что так оно и будет...:(


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DprToLvt (PasToLvt)
СообщениеДобавлено: 20 дек 2012, 11:56 
Не в сети
Site Admin
Аватар пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщений: 994
Ну, если честно, я тут сам слабоват, что-то конкретное советовать. Мой прототип Си компилятора так никогда толоком и не работал. Может, уважаемый vinxru поможет больше. Но моего опыта достаточно, чтобы сказать, что задача весьма сложная, а для Паскаля будет сложнее, чем для Си.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DprToLvt (PasToLvt)
СообщениеДобавлено: 20 дек 2012, 12:37 
Не в сети

Зарегистрирован: 20 апр 2012, 16:00
Сообщений: 372
Откуда: Конотоп
Я понимаю, что задача не из простых, но я думал (думаю), что возможно существуют правила правильного подхода к ней... допустим...
Сразу из текста удалить все коментарии и лишние пробелы...
обрабатывать построчно (или по "точку с запятой")
"маркировать" и "нумеровать" все метки "Begin" "end" "If" и т.д. так чтобы можно было сразу понять на какую метку должен быть переход допустим таким образом Метка "Proc_Primer_IF1_else" и т.д.

Вообще, я начинаю поминать, что внутри одного компилятора должны существовать не менее 2-3 подкомпилятров которые должны компилировать код в код следующего компилятора, постепенно преобразовывая код Паскаля в => Полупаскаль-ПолуМакроАсм => МакроАсм => Асм => коды КР580...

Вот так вот оно в моем понимании, во всяком случаее на данный момент.

На других форумам мне посоветовали вот -
Цитата:
ищите книги по теории построения лексических и синтаксических анализаторов. основам конструирования компиляторов и т.д.)
начните, например http://it.mmcs.sfedu.ru/wiki/Конспект_лекций_«Методы_построения_компиляторов»
...........................
да, есть интерпретаторы кода на Паскаль/Delphi.
Вопрос только в том, что Вы хотите сделать? (что получить на выходе)...


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DprToLvt (PasToLvt)
СообщениеДобавлено: 20 дек 2012, 12:55 
Не в сети
Site Admin
Аватар пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщений: 994
Цитата:
Вопрос только в том, что Вы хотите сделать? (что получить на выходе)...

Оень логичный вопрос. Так как я почти уверен, что для Делфи существует механизм, создания объектов в памяти из кода-стринга. Только вот, Вам он не нужен. Можно попробовать поискать парсер, который из стринга сделает дерево сущностей. Типа из
Код:
x:=y+1;

Вы получите XML:
Код:
<BinaryOperation>
   <Type>
      Assign
   </Type>
   <Left>
      <Variable>
         <Type>
            Integer
         </Type>
         <Name>
            x
         </Name>
      </Variable>
   </Left>
   <Right>
      <BinaryOperation>
         <Type>
            Add
         </Type>
         <Left>
...

С таким XML уже намного проще работать. Но только вот такой парсер очень сложная штука. Не знаю найдете ли.

Насчет же собственной компиляции, все-таки советую попробовать начать с ассемблера в бинарник. Как тренировка - просто прекрасно, и тут я многое могу подсказать. Я понимаю, что Вас расстраивает отсутствие подсветки и проверки синтаксиса и прочие "плюшки" редактора Делфи. Но поверьте, во-первых, это более простая задача. А во-вторых это можно будет потом самому доделать. А использовать среду Делфи для компиляции ПК-01 - слишком сложная и вряд ли нужная задача. Пешите полностью свой компилятор :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DprToLvt (PasToLvt)
СообщениеДобавлено: 20 дек 2012, 13:50 
Не в сети

Зарегистрирован: 20 апр 2012, 16:00
Сообщений: 372
Откуда: Конотоп
Среда Дельфи это уже как хороший вспомагательный инструмент по проверки Лексического анализа и
Синтаксического анализа (ну и работоспособности программы для ПК-01). В моей задумке, компилятор будет компилировать правильно только после того как был проверен компиляцией дельфи. Перестраховка такая чтоль:-) Моя задача(задумка) написать компилятор (клон Дельфи), полностью совместимый с Дельфи средой. Т.е. когда написанную программу и полностью подготовленную (готовую) и проверенную на работоспособность в Дельфи, можно "легким движением" в маш коды ПК-01. Понятно, что многое будет упрощено "на нет". Когда я напишу компилятор простейший, но достаточно эффективный, тогда при попытке написать прогу будет очевидно, что имменно нужно развивать и дорабатывать. Допустим, компилятор будет понимать простейшие конструкции "A:=A+B;" "A=A*C;" А конструкции посложнее такие как "A:=A*B+C" т.е. больше чем одно математическое действие он понимать не будет. При попытке написать программу для ПК-01 сразу станет очивидным: А нужно ли это!? А можно ли "с этим жить"!? А стоит ли имменно это дорабатывать!? Или переключится на что-то другое? Например лучше доработать тип-массивы которых пока еще нет и т.д. или строку стринг или еще чего нить...

Zelya писал(а):
Пешите полностью свой компилятор :)

Понимаешь, если я буду писать СВОЙ компилятор, то получиться, что я сам себе постепенно "отрубаю" пространство для дальнейшего развития компилятора. То есть, может получится в оконцовке, что я не учёл например, применение символов "^@" и т.д. либо наотрез решил, что конструкции с веткой else не нужны и не будут применяться в дальнейшем. А они "вкрай" понадобились. Представь, как после этого возможно вообще будет дорабатывать компилятор, если он изначально базировался на том что конструкций(символов) каких-то не будет?! Тоже самое и с лишними пробелами табами вводами... Вот допустим я решил, что их (лишних) не будет!... прога должна быть написана чётко и правильно и только тогда её сможет скомпилировать МОЙ компилятор?... Представляешь какая может получится скованность!? Поэтому я максимально страюсь приближаться к "Дельфийской свободе" написания программ те. чтобы компилятор понимал одинаково "A:=A+1;" и "A : =A + 1 ;" и т.д.
Вообщем все для удобства и размаха пользователя! :-) ну и я сам такой же... Хочу с размахом! Без ограничений! Непонятных!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DprToLvt (PasToLvt)
СообщениеДобавлено: 20 дек 2012, 13:59 
Не в сети
Site Admin
Аватар пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщений: 994
sas9568635
Куда проще в своем компиляторе игнорировать пробелы, чем совершать математические операции - это факт. Тем не менее, я почти уверен, что начав с Паскаля, Вы не прийдете к вразумительному результату, не имея достаточного опыта. Еще раз подчеркну, простого решения "в лоб" для такой задачи не имеется, а Вы выбираете один из наиболее сложных путей.

Так же, в дополнение, хочу отметить, что из 99% потенциальных пользователей (а их и так очень мало) компилятора для ПК-01, лучше откажуться от разработки программ вобще, чем будут ставить себе Делфи. Так что либо пишите полностью независимую среду, либо ориентируйтесь на маленькие дпоплнительные утилиты или библиотеки, не требующие установки.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DprToLvt (PasToLvt)
СообщениеДобавлено: 20 дек 2012, 14:22 
Не в сети
Site Admin
Аватар пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщений: 994
Обсуждение Паскаля вынес в отдельную тему.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DprToLvt (PasToLvt)
СообщениеДобавлено: 20 дек 2012, 15:47 
Не в сети

Зарегистрирован: 20 апр 2012, 16:00
Сообщений: 372
Откуда: Конотоп
Zelya писал(а):
Так же, в дополнение, хочу отметить, что из 99% потенциальных пользователей (а их и так очень мало) компилятора для ПК-01, лучше откажуться от разработки программ вобще, чем будут ставить себе Делфи. Так что либо пишите полностью независимую среду, либо ориентируйтесь на маленькие дпоплнительные утилиты или библиотеки, не требующие установки.

Хм...
Что-то мы на разных языках... :-)
Существует модуль-DprPasToLV.dll при котором будет процедура (функция) Compile(s:string);
Которая будет компилировать текстовый файл (в строке S) и создавать готовый SAV-файл для ПК-01.
Утилиту Compile.exe, иммея готовый компилятор в виде Compile(s:string); , создать создать несложно. Поэтому Дельфи можно при желании вообще не использовать (а блокнот, например :-) ). До сообственной среды подобной Дельфи, еще очень далеко и будет ли она нужна вообще, имея средЫ Дельфи, Паскаль и т.д.. Просто среда Дельфи как хороший вспомагатель для написания и отработки и "доведения до ума" программы которую пишешь для ПК-01, и получается, что зачем изобретать велосипед т.е. Сообственную среду подобную дельфи, но видишли подточенную под мой компилятор!?.

Надеюсь мой текст, который выше можно понять. :-)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DprToLvt (PasToLvt)
СообщениеДобавлено: 20 дек 2012, 16:58 
Не в сети

Зарегистрирован: 20 апр 2012, 16:00
Сообщений: 372
Откуда: Конотоп
Вот впервые столнулся вот с таким:
Компиляторы компиляторов
Lex + Yacc
Flex + Bison
CoCo
Antlr
Gold Parser Builder
GPLex + GPPG


Скажите пожалуйста что это такое, стоит ли с этим разбиратся, найду ли на русском доки по этому, и вообще стоит ли?... :-)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: DprToLvt (PasToLvt)
СообщениеДобавлено: 20 дек 2012, 21:26 
Не в сети
Site Admin
Аватар пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщений: 994
sas9568635
Насчет использования/не использования Делфи ответил в теме по Паскалю.

Насчет "компиляторы компиляторов" - не слышал, не использовал. Хотя, звучит очень интересно. Может, на досуге почитаю. Правда, есть подозрение, что в Вашем случае это все может только усложнить разработку (Вам придется учить дополнительный скриптовый язык, или еще что-то такое).


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 214 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14, 15  След.

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC + 2 часа [ Летнее время ]


Кто сейчас на форуме

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


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

Найти:
cron
Free counters!
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB