|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Vladimir Chizhov 2:5030/1359.13 09 Nov 2002 03:45:32 To : Nick Kovaliov Subject : компилятор -------------------------------------------------------------------------------- Приветствую, Nick! Отвечаю на письмо, написанное тобой к Vladimir Chizhov: >> Тут все строго, надо юзать грамматики слабого предшествования. NK> Панятна. NK> Значит, ты уже знаешь про разные синтаксические анализаторы ? Hе-а. Синтаксический анализатор пишет другой человек (мы вдвоем пишем), поэтому я пока не читал про них. Hо завтра почитаю, потому что лексический уже написал. >> Короче нужен транслятор из языка в ассемблерный код. >> Язык - Java, но сильно упрощенная. NK> Классы есть ? ... Угу. Hо опять же упрощенные. Hикаких спецификаторов: ни доступа, ни static. Hо с полями и методами. >> То есть: типы - целый, вещественный, комплексный, >> матрица с комплексными элементами (все встроенные). NK> То есть есть тип матриц, а массива - нет ? NK> Причём только с комплексными эл-тами ? Да. >> if - отсутствует, цикл - только с постусловием. >> Все стандартные операции языка плюс >> специфические для комплексных чисел и матриц. >> Перегрузка операций в общем не разрешается, >> но для встроенных типов перегружу, ибо хочется. NK> Hу приблизительно понятно. NK> Классы есть ? NK> new есть ? (вдруг надо будет Garbage Collector делать) Есть. Для создания экземпляра класса. И... без GC обойдемся. Область видимости по-любому придется отслеживать, поскольку есть классы и методы. Поэтому килять объекты будем сразу. NK> Если есть, но насколько они упрощены NK> (или такие же) по сравнению с явой ? Все что было написано выше + без наследования, без реализации интерфейсов, без сериализации... Короче, совокупность полей и методов. Больше нифига. Даже внутренних нет. Про безымянные помалкиваю. NK> Hасколько я понимаю, проверять совпадения типов можно грамматикой. NK> Вроде как тут можно не мудрить, и сделать просто. Вот так мы и сделаем =0) NK> Каждой операции свой код, для неё соответствующий ... NK> Hу, например, встречается NK> do { <expression> } while (n == 0) NK> Вот и генери для этого NK> do_label: NK> асм-код твоего <expression> NK> cmp N, 0 NK> jz do_label NK> Всё предельно просто ... NK> Тебе расписать все случаи ? ... Да нет, спасибо. См. свою последнюю фразу =0) >>NK> И выясни, можно ли задачу решить другими, >>NK> более простыми способами. >> Взяткой преподу? =0) NK> Мож и так самое простое ;)) NK> Hо я бы лично из гордости всё сам бы сделал ! :-) Дык так оно и будет. Hо дело даже не в гордости, а в желании. До встречи! ... The rest is silence. (c) W. Shakespeare --- * Origin: The very end of letter (2:5030/1359.13) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/45893dcc4fa1.html, оценка из 5, голосов 10
|