Dúvida em relação a semântica e sintaxe de uma linguagem de programação

17 views
Skip to first unread message

Augusto Guerra de Lima

unread,
Aug 19, 2025, 9:10:16 PMAug 19
to dcc024

Boa noite,
Estou com uma dúvida. Na última aula foi apresentado que, se quisermos estabelecer algum tipo de precedência entre operadores (por exemplo, * antes de +), haveria restrições sintáticas no BNF.
Pensando em um exemplo: suponha que queiramos construir um BNF para uma linguagem onde podemos ter funções, como f: a -> b e g: b -> c. Também gostaríamos que fosse possível compor essas duas funções, por exemplo g ° f. É sabido que o contradomínio de f deve ser igual ao domínio de g.
Minha dúvida é: essa restrição de compatibilidade entre domínio e contradomínio é considerada mais sintática ou semântica? Existe algo que possa ser feito no BNF para capturar essa condição, ou esse tipo de verificação é tratado de outra forma (por exemplo, no compilador ou através da descrição da semântica formal da linguagem)?

Fernando Magno Quintao Pereira

unread,
Aug 19, 2025, 9:32:31 PMAug 19
to dcc...@googlegroups.com
Boa noite, Augusto,

> Pensando em um exemplo: suponha que queiramos construir um BNF para uma linguagem onde podemos ter funções, como f: a -> b e g: b -> c. Também gostaríamos que fosse possível compor essas duas funções, por exemplo g ° f. É sabido que o contradomínio de f deve ser igual ao domínio de g.
> Minha dúvida é: essa restrição de compatibilidade entre domínio e contradomínio é considerada mais sintática ou semântica?

Semântica.

> Existe algo que possa ser feito no BNF para capturar essa condição?

Creio que não.

> , ou esse tipo de verificação é tratado de outra forma (por exemplo, no compilador ou através da descrição da semântica formal da linguagem)?

Verificação de tipos.

Fernando
Reply all
Reply to author
Forward
0 new messages