Obs: biblioteca. Nota: 0,5 ********************************************************************************************** Nome.: Alexandre Nogueira Jahnecke RA.: 220108 Curso.: BCC-01 Paulo Casonato Nalim RA.: 219703 Curso.: BCC-01 Construção de Compiladores - Turma de Quinta-Feira Exercício extra - Linguagem de Programação ********************************************************************************************** A linguagem que eu proponho seria uma linguagem voltada para a implementação de jogos e sistemas de simulação e de realidade virtual. Ela se chamaria ANJ-4-RealWorld. A partir daqui eu a chamarei apenas de ANJ. A característica principal dela seria o uso de uma linguagem muito parecida com a natural, onde o usuário usaria verbos (para executar ações), substantivos (que representariam objetos), adjetivos (atributos dos objetos), numerais (para indicar quantidades, posições) e estruturas de repetição como repeat, while (as quais seriam usadas normalmente). Palavras que podem ser confundidas morfologicamente (como verbos e substantivos) não seriam confundidas pelo compilador da ANJ. Todas as palavras teriam seus lugares certos de serem usadas. Por exemplo a palavra "dança", que pode ser tanto um verbo quanto um substantivo, seria totalmente analisada pelo compilador e entendida por ele. Contextos diferentes e que talvez não sejem entendidos pelo compilador, serão adicionados no banco de dados de contextos da linguagem, o qual dá suporte ao engine de inteligência artifical presente no compilador. Ele relaciona todas as possibilidades possíveis e apresenta ao usuário tais relações. O usuário poderá escolher entre as opções dadas pelo compilador (aquela que mais se aproxima da desejada) ou poderá fazer mudanças. O usuário poderá mandar o compilador construir um protótipo do seu projeto. Como o compilador retornará um projeto gráfico, não será difícil para o usuário observar os erros de programação. A linguagem já possuiria milhares de bibliotecas pré-definidas mas não em baixo nível como na linguagem JAVA. Para construir um carro e fazê-lo andar por uma estrada, por exemplo, o usuário precisaria simplesmente escrever: Construa 1 Carro carro1 { Esporte; Azul; Rodas de Magnésio; } Construa 1 Estrada estrada1 { 2 Faixas; } Movimente carro1 Em estrada1 Quando o protótipo for construído, seria gerado um carro esporte azul com rodas de magnésio se movimentando por uma estrada de 2 faixas. É claro que o compilador analisaria se o objeto carro poderia ser interagido com a estrada. Caso a interação nao fosse possível, seria indicado ao usuário um possível erro de programação, mas a construção do protótipo seria realizada. Como existem centenas de palavras chave na ANJ, e todas elas em linguagem bastante natural, o usuário poderia aprender a construir projetos simples em poucos minutos. Praticamente tudo o que normalmente é usado em simulações existe já pré-definido em ANJ: fábricas, janelas, portas, produtos, caixas, casas, pessoas, homens, mulheres, partes do corpo etc. Objetos abstratos como beleza, sentimentos, sensações, seriam incorporados aos objetos naturalmente, apenas "dizendo" ao compilador em liguagem bem natural, da mesma forma que são criados. Como pôde ser visto, existe o conceito de variáveis, mas vários outros conceitos da orientação a objetos devem ser abstraídos até pelo programador, como por exemplo herança (uma fábrica por exemplo é a união de vários componentes da linguagem como janelas, portas, operários etc.). Poderíamos falar até em orientação ao mundo real, pois os componentes nao herdariam uns dos outros nem teriam várias formas, e sim seriam incorporados entre si. Partes poderiam ser retiradas, como que pegas com a mão e deixadas de lado pelo programador. Bem, essa é a visão geral da linguagem ANJ-4-RealWorld. Podemos ver que se ela existisse, seria extremamente útil para qualquer programador de jogos e sistemas de simulação e de realidade virtual.