![]() |
Ответ: создание MIDletPascal compiler'a
Всем привет. Я могу помочь ;)... Сам сейчас это всё обдумываю. Где-то через 3-4 месяца смогу представить рабочую версию проекта. Всё зависит от времени. Настроен на разработку высокоуровневой проффесиональной среды программирования. =)
|
Ответ: создание MIDletPascal compiler'a
Многие будут за ;)
Да и еще, встройте пошаговый отладчик пожалуйста, ну если это в принципе представляется возможным. В MIDletPascal очень сложно следить за корректностью работы мидлета, приходиться постоянно что-то выводить на экран, да и еще чтоб все "увиделось", нужно что-то включать и переключать по несколько раз. |
Ответ: создание MIDletPascal compiler'a
Чтобы иметь пошаговый отладчик, нужно эмулятор JVM писать.
|
Ответ: создание MIDletPascal compiler'a
Цитата:
|
Ответ: создание MIDletPascal compiler'a
про эмулятор здесь уже говорил, его сделать в принципе не сложно. Но чтоб проги запускались надо написать еще несколько сотен библиотек... врятли кто-нибудь здесь возьмется за это, или я ошибаюсь?
p.s. можно просто сделать режим компиляции с отладкой, когда в генерируемый код автоматически будет вставляться строка исходного кода, которая будет выводиться на консоль при выполнении на любом эмуляторе |
Ответ: создание MIDletPascal compiler'a
Насчёт эмулятора, буду думать когда всё сделаю остальное. Делать или неделать его. abcdef - хороший вариант откладки
|
Re: создание MIDletPascal compiler'a
Прива всем... Я тоже не забил на проект, переписал IDE и начал разбираться с Java ASM скорее всего и проще для меня наверное будет сделать Java Assembler а потом просто транслятор с Pascal в JASM, простой ассемблер уже зашивал в IDE так что кому нужен инструмент для компиляторов с рабочим ассемблером и примерами пишите.
Сосо/r не заморачивался поиском, кому надо найдет в сети, просто щас пару проектов больших, сцуко отнимают все время... |
Ответ: создание MIDletPascal compiler'a
Hi All...
в прошлом году тоже начал писать Иде - на дельфях заделал редактор - с подсветкой кода - Хелпом по каждому оператору - и тд... но потом в аварию попал ... 5 месяцев провалялся - в общем пока восстановится несмог... === по Компилятору : может сделать примерно такую схему MidPascal ( с вставками на JavaAsm(типа Жасмин) оформлять в коде Asm: EndAsm; и вставками на Jave (Jav: EndJav; ==>> трансляция на JAva ==>> на Jasmin == Мидлет и в ИДЕ предусмотреть обратную конвертацию Мидлет ==> Jasmin ==> Java ==> MidPas --- гдето я видел ЕХЕ компилятора Jasmin в Class (компиляторы и трансляторы можно сделать в виде отдельных прог - которые вызываются из Иде - тогда можно распределить задачи здесь на форуме - кто то возьмётся за трансляторы, кто за компиляторы а кто и дизасемблер.... === я немного подздоровею и вплотную впрягусь в какиенибудь подзадачи... |
Ответ: создание MIDletPascal compiler'a
Вложений: 1
примерный вид Иде...
подшаманю немного и выложу исходники.... |
Ответ: создание MIDletPascal compiler'a
какой-то faq по java, со списком компиляторов
http://xoomer.virgilio.it/csadun/javafaq.html -------содержание текста------- GCJ - http://gcc.gnu.org/Java/ The GNU Compiler for the Java Programming Language, compiles Java source or bytecode to native machine code. Most APIs are supported, except the AWT, Swing and RMI. Open Source! Lo si puт usare anche sotto Windows con CygWin http://sources.redhat.com/cygwin/, ma и ancora lontano dall'essere finito. JCC - http://www.geocities.com/CapeCanaver.../4040/jcc.html A Java to C converter - A direct Java to C translator. Unlike other translators JCC does not convert Java class files, but instead processes Java source code directly. Completamente free! JET Deployment Environment - http://www.excelsior-usa.com/jet.html built around an optimizing Java to native code compiler for Windows. The compiler produces conventional EXE and DLL files that do not use JVM during execution from Excelsior. A pagamento. Jolt - http://www.meurrens.org/ip-Links/Jav...Down/jolt.html Hackers-only prototype of a Java bytecode to C translator written in Java. Toba - http://www.cs.arizona.edu/sumatra/toba Java-to-C Translator: translates Java class files into C source code to allow making, fast, directly executable programs that avoid the overhead of interpretation. For stand-alone applications, not applets. IBM Jikes - http://oss.software.ibm.com/develope...nsource/jikes/ JikesTM is a compiler that translates Java source files as defined in The Java Language Specification into the bytecoded instruction set and binary format defined in The Java Virtual Machine Specification. Harissa - http://www.irisa.fr/compose/harissa/ Harissa is a Java environment that includes a compiler from Java bytecode to C and a Java interpreter. While Harissa is aimed at applications that are statically configured, such as the Javac compiler, it is also designed to allow code to be dynamically loaded in an already compiled application. Jasmin - http://mrl.nyu.edu/~meyer/jvm/ Jasmin is a Java Assembler Interface. It takes ASCII descriptions for Java classes, written in a simple assembler-like syntax and using the Java Virtual Machine instruction set. It converts them into binary Java class files suitable for loading into a JVM implementation. JToExe - http://www.bravozulu.com/Products/JToExe/jtoexe.html Lo riporto solo per "completezza"... il dominio и significativo:"bravo zulщ"... a chi? A chi lo usa! ;) BeanShell - http://www.beanshell.org/ BeanShell is a small, free, embeddable, Java source interpreter with object scripting language features, written in Java. BeanShell executes standard Java statements and expressions, in addition to obvious scripting commands and syntax. BeanShell supports scripted objects as simple method closures like those in Perl and JavaScript(tm). JFlex - http://www.jflex.de/ JFlex is a lexical analyzer generator (also known as scanner generator) for Java(tm), written in Java(tm). It is also a rewrite of the very useful tool JLex which was developed by Elliot Berk at Princeton University. JLex - http://www.cs.princeton.edu/~appel/modern/Java/JLex/ JLex is a lexical analyzer generator, written for Java, in Java. JLex was developed by Elliot Berk at Princeton University. It is now maintained by C. Scott Ananian. Jad - http://www.geocities.com/SiliconVall.../8617/jad.html Jad - the fast Java Decompiler. Jad is a Java decompiler, i.e. program that reads one or more Java class files and converts them into Java source files which can be compiled again. Jad is a 100% pure C++ program and it generally works several times faster than decompilers written in Java. JODE - http://jode.sourceforge.net/ JODE (Java Optimize and Decompile Environment) is a Java package containing a decompiler and an optimizer for Java. This package is freely available under the GPL. Delphi2Java - http://www.javadelphi.com/ Creates Java source code from Delphi's Pascal code. Commerciale :( See also: http://dmoz.org/Computers/Programmin...s/Translators/ Java Code Engineering & Reverse Engineering - http://www.meurrens.org/ip-Links/Java/codeEngineering/ |
Ответ: создание MIDletPascal compiler'a
исходники на delphi простейшего редактора с подсветкой синтаксиса
http://sources.codenet.ru/download/3...Highlight.html p.s. что-то без предложений/исходников по компилятору, пропадает интерес продолжать проект... |
Ответ: создание MIDletPascal compiler'a
Вычистил флуд.
Кто бот, кто не бот - разбирайтесь в "Болтовне". |
Re: создание MIDletPascal compiler'a
Вложений: 1
abcdef а какие тебе исходники надо?
Ну вот держи подсветку чуть покруче чем в примере... А вообще у меня куча исходников на любой вкус... |
Всем привет...
--- прижде чем выкладывать ide ? хотелосьбы обсудить несколько вопросов по будущему языку... --- I. - структура каталогов самого Компилятора 1 - MPascal(условное название каталога Компилятора) 2 - Help(каталог со всякими справочными материалами по языку) 3 - Libs(каталог с готовыми библиотеками Class файлов + Txt файлы с такимже именем - описание либы(будет выводиться в инспекторе библиотек) 4 - Units (каталог с библиотеками на исходном языке(мпаскале) + Тхт описание 5 - Source (каталог содержащий всякие разные подкаталоги напр музыку, картинки и тд... то что будет чаще всего использоваться в Проекте) 5.1 - Image - каталог Png, Ico? Bmp? Jpg? 5.2 - Sound - каталог Wav Midi Mp3 5.3 - OtherSrc - ? 6 - Projects(каталог пользовательских проектов) 7 - MPIni??? - (настроечные / вспомогательные файлы компилятора (например дополнительные ЕХЕ - транслято 2 satan - посмотри в исходниках - может есть пример редактора на Tmemo со структурой? ничего непонимаю :-) - текст в мессагах почемуто обрезается... по дцать раз редактировал - а он опять пропадает.... попробую ещё разик... ---- --- I. - структура каталогов самого Компилятора 1 - MPascal(условное название каталога Компилятора) 2 - Help(каталог со всякими справочными материалами по языку) 3 - Libs(каталог с готовыми библиотеками Class файлов + Txt файлы с такимже именем - описание либы(будет выводиться в инспекторе библиотек) 4 - Units (каталог с библиотеками на исходном языке(мпаскале) + Тхт описание 5 - Source (каталог содержащий всякие разные подкаталоги напр музыку, картинки и тд... то что будет чаще всего использоваться в Проекте) 5.1 - Image - каталог Png, Ico? Bmp? Jpg? 5.2 - Sound - каталог Wav Midi Mp3 5.3 - OtherSrc - ? 6 - Projects(каталог пользовательских проектов) 7 - MPIni??? - (настроечные / вспомогательные файлы компилятора (например дополнительные ЕХЕ - трансляторы, компиляторы, декомпиляторы, линковщики, архиваторы, редакторы рисунков...) 8 - 9 ??? что нибудь добавить? ======= II. - каталог Проекта с пользовательской программой в нём файл проекта - обычный ИНИ(с секциями и разделами - описывающие фалы проекта , какиенибудь настройки... 1 - ImgIn - файлы рисунков используемых в проекте (разных форматов) 2 - ImgOut - теже фалы рисунков - но обработынных утилитой pngout.exe - для формирования "сжатых" PNG файлов? кажется утилита бесплатная и будет поставлятся юзверям языка в комплекте ?? 3 - SrcSound - разные музыкальные файлы проекта 4 - SrcMpas - редактируемы исходники на языке 5 - OutJava - оттранслированные Исходники в промежуточный язык компилятора Java??? 6 - OutJAsm - оттранслированные Java в ЖаваАссемблер? 7 - Classes - полученные готовые класс файлы из Ассемблера??? 8 - Bin - готовые для вставки в телефон Jar Jad === теперь по языку III. некоторые изменения синтаксиса Мпаскаля-ля-ля-ля... :-) 1 - многострочные комментарии - мля... удобнее набирать с клавы, как мне кажется, символы /* и */??? 2 - begin end - может заменим эту комбинацию на фигурные скобки? {} 3 - изменить описание переменных и функций... мля... для синаксического анализатора и коде жампера - былобы полегче использовать конструкцию типа: Описание : Индетефикатор(ы) чем NAme:type секция Var int: Name1, name2 = 10; double: name3 = 3.14592; string: function fName(string:param1,param2); ??? III. вопросы по языку... 5. секция UseLibs - использование готового class из каталога Libs компилятора, типа так: описание(имя либы и описание используемых в ней процедур/функций? UseLibs Lib_advui: // Библиотека для управления огоньками и вибратором. int: function set_lights (int: num, level); /*----------------------------------------------------------------------- Включить/выключить огоньки с номером num. level - яркость данного огонька (0-100). Пример: a:=set_lights(0, 0) выключает экран. Возвращает: 0 - ф-ция сработала нормально -1 - неверный аргумент (нет огонька с номером num или превышен интервал level) */ int: function flash_lights (int: dur); /*----------------------------------------------------------------------- Аналог flashBacklight... dur - время мигания экрана в миллисекундах Возвращает: 0 - ф-ция сработала нормально -1 - неверный аргумент (время < 0) */ int: function startVibra (int: freq, dur ); /*----------------------------------------------------------------------- Запустить вибратор на время dur в миллисекундах. freq - частота вибрации (0-100) Возвращает: 0 - ф-ция сработала нормально -1 - ошибка аргумента (время < 0 или превышен интервал частоты) -2 - телефон не поддерживает вибрацию */ procedure stopVibra; /*----------------------------------------------------------------------- Останавливает вибратор, например если он был запущен с помощью startVibra и время вибрации ещё не кончилось. */ EndLibs; ======= хотя текст и большой - но в редакторе его можно будет "схлопнуть" в в одну строчку: [+] UseLibs Lib_advui: // Библиотека для управления огоньками и вибратором. [...] и этот текст будет автоматически? скопирован из файла описания ТХТ либы, в редактор, менеджером проекта... а комментарии будут показаны в окне пооператорного Хелпа - если встретится в тексте процедура из библиотеки..??? III. о языке - 6. сделать структуру CASE такого типа: Код:
DoCase --- 7 - ещё про типы данных хотел поспрашивать... какие они будут в дополнение к "стандартным".. будут ли байтовые? 8. - из уже существующих библиотек для мидлет паскаля - отлаженных и проверенных - внести Их в новый компилятор.... |
Ответ: создание MIDletPascal compiler'a
не садился за проект с момента выкладывания последних исходников.
пока есть доступ к сети смотрю инфу и программы. ________ сейчас два варианта создания компилятора: 1. либо взять Pascal-s и в подпрограмме вывода листинга преобразовать текст к формату java-text-asm, а в код pascal-s добавить вывод ошибки при генерации вложенных подпрограмм и передаче в параметрах ссылки на переменную, т.е. "procedure p(VAR i : integer; j : integer);". т.к. java-спецификация не поддерживает таких конструкций в силу того что переменные метода локализованы. 2. либо написать с нуля упростив конструкцию (принципиально убрать из алгоритма возможность генерации всего лишнего), недавно принялся писать с чистого листа, поглядывая в pascal-s, сделал единую таблицу для всего (имен,идентефикаторов,типов и т.д.) скорость компиляции немного упадет, но появится однообразие структуры.... написал около 600 строк, вижу что не получается настолько эффективно как в pascal-s... подумываю чтобы вернуться к первому вариатну. ________ но важнее разобраться вот в чем: как поступить с типом "record": как в mp - делать класс с набором переменных или разбить отдельные элементы и пусть хранится как отдельные переменные. тогда появляется вопрос: как организовать передачу записи в параметре функции, копировать поэлементно в стек потом извлекать? также заминка на типе String для простоты можно будет сделать как в mp - отдельный метод с набором функций если использовать float и double - необходимо перепроектировать блок арифметических операций для разделения целочисленных команд и с плавающей точкой. ________ немного об ассемблере: до сих пор не добавил верификатор, т.е. автоматическую генерацию структуры StackMap (исходники то есть, но не знаю где почитать полную информацию по этому процессу) - это очень нужно завершить. из попадавшихся исходников java-ассемблеров более простых, чем сделал, не находил ________ про все остальное: в самых первых сообщениях говорил что надо сделать компилятор в class-файлы, упаковщики, ide - это уже другой разговор Serg153 - если заменить код программы "begin ... end" на "{ ... }" и т.д. то получится java-исходник. для этого можно просто собрать программку на строк 200 (здесь подобное уже выкладывал), которая будет менять ТОКЕНЫ, и это компилировать в чистой java, но думаю интереса к такого рода переходникам ни у кого не возникнет. ______ общая дока по компиляторам, (без конкретных исходников) http://ag-kastens.upb.de/wir/taiko/diss/CLDCSpec.pdf http://www.europrog.ru/paper/obe_java2.pdf http://delphi.od.ua/article/a-33.html |
Часовой пояс GMT +4, время: 12:50. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot