Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 компилятор   Vladimir Chizhov   26 Oct 2002 14:03:49 
 Re: компилятор   Nick Kovaliov   30 Oct 2002 12:39:57 
 компилятор   Vladimir Chizhov   01 Nov 2002 11:19:03 
 Re: компилятор   Nick Kovaliov   04 Nov 2002 10:47:28 
 Re: компилятор   Alex Kozhushko   04 Nov 2002 12:11:03 
 Re: компилятор   Nick Kovaliov   04 Nov 2002 12:34:06 
 Re: компилятор   Alex Kozhushko   04 Nov 2002 19:14:09 
 компилятор   Vladimir Chizhov   09 Nov 2002 04:01:12 
 Re: компилятоp   Andrew Barbolin   12 Nov 2002 02:14:35 
 компилятор   Vladimir Chizhov   09 Nov 2002 03:45:32 
 Re: компилятор   Nick Kovaliov   10 Nov 2002 11:22:56 
 компилятор   Vladimir Chizhov   11 Nov 2002 11:20:12 
Архивное /ru.algorithms/45893dcc4fa1.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional