В зависимости от определения языка компилятору могут понадобиться или не потребоваться ключевые слова. Когда он не знает, что делать, он может попытаться применить правила приоритета или просто потерпеть неудачу.
Пример:
void return(int i){printf("%d",i);}
public int foo(int a)
{
if(a > 2)return (a+1)*2;
return a + 3;
}
Что произойдет, если а больше 2?
- Спецификация языка может
требует, чтобы компилятор не работал
- Спецификация языка может потребовать, чтобы компилятор использовал return
функция
- Спецификация языка может потребовать от компилятора возврата
Вы можете определить язык, в котором не используются ключевые слова. Вы даже можете определить язык, который позволяет вам заменять все символы (поскольку они сами являются только очень короткими ключевыми словами).
Проблема не в компиляторе, если ваша спецификация завершена и без ошибок она будет работать. Проблема в PEBCAD, программы, использующие эту функцию языка, будут трудно читать, так как вы должны отслеживать определения символов.