# Conteúdo semântico

Ilustração com uma expressao aritmetica

![](https://2105802016-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP0B5wWrJT1pz8LDXyP2I%2Fuploads%2FbmnzNsawOa9r4oQ77LWd%2Fa.png?alt=media\&token=7d7b832f-1a7a-4904-ae38-b0af5c1e2fb9)

Considere a gramática seguinte, onde _num_ é um _token_ que representa um número.

```
E -> E + T | T
T -> T * F | F
F -> num | (E)
```

Desenhe-se a árvore de derivação da palavra "1+2\*3".

Como dar significado a esta árvore ?

1. Associando a cada símbolo um atributo que armazene o valor que a sub-árvore de que é raiz representa.
2. Relacionando os atributos associados aos símbolos de cada produção através de regras de cálculo.

![](https://2105802016-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP0B5wWrJT1pz8LDXyP2I%2Fuploads%2FzmcdgoMhoR7g6KTR47YX%2Fa.png?alt=media\&token=616e97d5-6438-4615-87ab-2a81e8de5548)

As setas vermelhas representam dependência entre atributos.

* O sentido indica qual influênca qual.

## Ilustração com uma declaração de variáveis

![](https://2105802016-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP0B5wWrJT1pz8LDXyP2I%2Fuploads%2FsLlGYP4lwdsgW8bxBT51%2Fa.png?alt=media\&token=3bfde31d-79b8-4604-bd3b-189c5e139e31)

Considere a gramática seguinte, onde _id_ é um _token_ que representa o nome de uma variável.

```
D -> T L
T -> i / f
L -> id | L , id
```

Desenhe-se a árvore de derivação da palavra _i_, _a,b_.

Associe-se

* a _T_ e _L_ um atributo _t_ que armazene o tipo.

![](https://2105802016-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP0B5wWrJT1pz8LDXyP2I%2Fuploads%2FZuOJJLalpx7ttJfnAVAP%2Fa.png?alt=media\&token=976252e0-b472-437d-8292-7a9da694539b)

As setas vermelhas representam dependência entre atributos.

* O sentido indica qual influênca qual.
