Абстрактное дерево синтаксиса и объектная модель - PullRequest
0 голосов
/ 03 августа 2011

В чем разница между объектной моделью и абстрактным синтаксическим деревом?

У меня путаница с этими терминами.Что я знаю об этом:

  1. Объектная модель дает подробную информацию об объектах и ​​их отношениях в приложении.

  2. AST даст структурупрограммные элементы приложения.

Что мы можем получить из объектной модели, которую нельзя получить из AST?

Заранее спасибо.

1 Ответ

1 голос
/ 03 августа 2011

Объектная модель и AST представляют вещи на разных уровнях абстракции, у них очень мало общего, кроме диаграмм, каждая из которых может содержать строки, поля и текст.

Пример Wikipedia AST показывает дерево, представляющее результат анализа небольшого фрагмента языка программирования.

Объектная модель - это одно из множества описаний ОО-проекта, где мы думаем об объектах различных классов. Когда мы думаем об объектах, мы хотим знать, что они делают и что они «знают». Таким образом, если у нас есть, скажем, объект C клиента, некоторые заказы C разместили O1 и O2 и некоторые продукты P1, P2, P3, на которые ссылаются эти заказы, мы могли бы построить диаграмму отношений и начать рассуждать о том, что может произойти в конкретных бизнес-сценариях. - например, предположим, что O2 - это заказ на {P2 и P3}, мы можем подумать о том, как мы можем определить цену для заказа, или что мы можем сделать, если у нас нет запасов для P3.

AST даже для одного класса будет довольно обширным и очень трудным для понимания с точки зрения поведения. Я не верю, что вы могли бы рассуждать об этих бизнес-сценариях из AST.

...