é o livro: Livro Compiladores - Princípios, Técnicas e Ferramentas 2. ed.
é o livro: Livro Compiladores - Princípios, Técnicas e Ferramentas 2. ed.[/quote]
Este mesmo…
bakana, aqui, comecei a implementar um interpretador para php de java, até agora tá dando certo, tá fazendo a análise léxica e já to montando a estrutura pra php e possibilitando a execução em da classe java em php, tá ficando legalll…
mas pode ser melhor estruturado, num sei se é interessante postar o código fonte do conjunto de classes que interpretam o java pra php aqui, mas se o pessoal quiser…
[quote=xjunior]bakana, aqui, comecei a implementar um interpretador para php de java, até agora tá dando certo, tá fazendo a análise léxica e já to montando a estrutura pra php e possibilitando a execução em da classe java em php, tá ficando legalll…
mas pode ser melhor estruturado, num sei se é interessante postar o código fonte do conjunto de classes que interpretam o java pra php aqui, mas se o pessoal quiser…[/quote]
espera chegar no analisador sintatico pra vc ver como fica legal… :twisted:
é fi, cheguei lá, mas num tá muito complexo não, tá tranquis pois não preciso implementar o java todo, e sim o que eu preciso…
[quote=xjunior]é fi, cheguei lá, mas num tá muito complexo não, tá tranquis pois não preciso implementar o java todo, e sim o que eu preciso…
:-)[/quote]
Então vc não chegou ainda na parte hard da coisa… a proposito vc esta se baseando em recursividade pra fazer seu analisador semantico?
pois pela propria natureza dele ele é 100% recursivo… o livro do dragãozinho te explica melhor isso…
mas minha dica é antes de sair fazendo a coisa pegue um papel e um lapis e diagrame a sintax faça um diagrama de linguagem de livre contexto no papel mesmo (o livro do dragão deve ensinar como faz…) e depois que vc ver que a coisa flui dai sim parta para o codigo… senão terá dor de cabeça… pois de principio é facil… ate chegar a algumas partes que vc ve que não tem saida… dai terá de apagar grande parte do codigo do analisador pra refaze-lo pra não dar dica… porem se vc usar o diagrama em papel e caneta mesmo vc pode fujir deste tipo de dor de cabeça…
bom amigo,olha este exemplo meio esdruncho que eu fiz e deu certo::
entrada de código:
public class Mae{
private String _variavel;
private int _numero=0;
protected String _trateMais="";
public Maealta(){
this._variavel="O número inserido foi: ";
out.println(this._variavel);
return this;
}
public Mae mais(int numero){
this._numero = numero;
system.out.println(this._numero);
return this;
}
protected String connectVar(String left){
this._trateMais = left;
return this._trateMais;
}
}
public class Filha extends Mae{
protected String connectVar(String left){
this._trateMais = "Nada mais";
return this._trateMais;
}
public void teste(){
out.println(this.alta().mais(1945).connectVar("!!!!!!!!ooooiiiiiiiii"));
}
}
e a saída::
class Mae{
private $_variavel;
private $_numero=0;
protected $_trateMais="";
public function alta(){
$this->_variavel="O número inserido foi: ";
echo($this->_variavel);
return $this;
}
public function mais($numero){
$this->_numero = $numero;
echo($this->_numero);
return $this;
}
protected function connectVar($left){
$this->_trateMais = $left;
return $this->_trateMais;
}
}
class Filha extends Mae{
protected function connectVar($left){
$this->_trateMais = "Nada mais";
return $this->_trateMais;
}
public function teste(){
echo($this->alta()->mais(1945)->connectVar("!!!!!!!!ooooiiiiiiiii"));
}
}
Neste ponto, ele somente faz o papel de parser…
agora é implementar os métodos e fazer a interação que o jasper faz com as expressões…
:shock:
vou cansar…
mas o que vc esta fazendo é um conversor de java para php…
isso não é tão complicado como um compilador…
manjando bem de expressões regulares vc faz na boa…
como eu disse, por enquanto decidi fazer um parser mesmo…
agora como conversei com meu chefe, ele falou pra esperar um pouco para decidirmos o rumo desta parte, então parei no conversor, e não implementei o que eu ia implementar, que era parte da ferramenta em delphi daqui e o que o jasper entende e ainda um pouco de java, então seria tipo uma mesclagem, aí eu ia ter que fazer tudo do zero, mas como não definiu, resolvi esperar um pouco…
o parser está pronto, fiz rapidinho, acho que não demorei nem meia hora fazendo e testando…
quando criei o tópico, o intuito era criar um tipo de mini-linguagem mesmo, mas no decorrer da questão, e com as respostas decidi esperar um pouco a definição e criar um parser mesmo, mas esse tópico foi importante na minha decisão momentânea, mas quero aprender mais sobre compiladores, já que no meu curso de graduação não tem mais essa disciplina, que é Sistemas de Informação, tenho que aprender por fora mesmo…
Aqui mano, ce tem esse livro em PDF?