Thread: [Notes2-team] Corretor de erros
Brought to you by:
andersonrb
From: Thiago C. <fa...@nl...> - 2003-07-29 04:35:41
|
Primeiramente peço desculpas pela demora para me pronunciar mas lá vai Minha idéia para análise de de erros do código seria: O componente scaneia o código e busca por estruturas chaves que estariam guardadas em uma base ex: if(...){...} for ... to ... do begin ... end; ao encontrar uma palavra chave (if, for, while) ele virifica as possíveis variações de código que podem aparecer. ex: if ... then if (...)...(...) then e analiza a compatibilidade da estrutura encontrada, no caso de um erro no código. ex: if a==2 or b==3 then cada palavra chave seria pesada e uma decisão do que fazer para tornar o código correto tomada. ex: if == inicio de estrutura condicional then == termino de estrutura condicional or == ou lógico a==2 E b==3 == possíveis condições da estrutura modelo mais próximo conhecido if (...)...(...) then ação = adicionar aparenteses às condições (a==2 e b==3) para isso é necessário que haja conhecimento empírico sobre a linguagem, nesse ponto se mostra um problema que é criar as regras de verificação do código, é inviável criarmos todas então como elas vão ser chamadas de um arquivo basta ser mais um XML para que o usuário as crie e melhore, ou mesmo uma interface no Notes quando uma estrutura desconhecida fosse encontrada, etc. Infelismente eu creio que esta seria uma parte não muito facilmente configurável do Notes pois ainda não consegui ver uma maneira muito pratica de declarar as estruturas de forma simplificada. No máximo até esta quarta estarei enviando algum tipo de exemplo de como seria o funcionamento de forma mais detalhada, mas a teoria é mais ou menos essa, ele "lê" o código encontra o início de uma estrtura e pensa: se eu tenho um if então preciso de parâmetros e um then, depois disso verifica o resto da linha de código e dependendo do que encrontar faz as devidas alterações para que fique o mais compativel possível com as estruturas genéricas conhecidas. Outra coisa, estava conversando com Anderson e sugeri o seguinte: Inicialmente pensamos em fazer este componente em C++ pois meus conhecimentos em obj pascal não são muito extensos mas para que todos possam participar do projeto desta parte acho que seria muito melhor fazer-lo em obj pascal e assim ter toda a equipe participando, mas para isso precisarei de muito mais suporte de todos entao...o que preferem C++ ou Obj Pascal? Thiago Cavalcanti |
From: Anderson R. B. <no...@ig...> - 2003-07-29 17:58:32
|
Eba! O Thiago mandou o e-mail! :) >O componente scaneia o c=F3digo e busca por estruturas chaves que estari= am >guardadas em uma base ex: > > if(...){...} > > for ... to ... do > begin > ... > end; > T=E1, mas como a gente vai guardar isto num arquivo XML? A =FAnica id=E9ia que tive foi algo assim: <estrutura findkeyword=3D"if"> (*)\s{*} </estrutura> Em portugu=EAs: "quando a palavra-chave *"if"* for encontrada deve haver= =20 um "*("*, seguido por um trecho com quaisquer caracteres em qualquer n=FAmero*,* mais um *")"* seguido por caracteres=20 espa=E7os (espa=E7o, tab ou quebra de linha) e logo depois um *"{"* seguido de um trecho com quaiquer caracteres e=20 finalmente mais um *"}"*". Seria algo assim? >Infelismente eu creio que esta seria uma parte n=E3o muito facilmente >configur=E1vel do Notes pois ainda n=E3o consegui ver uma maneira muito = pratica >de >declarar as estruturas de forma simplificada. > O que n=E3o der para ser configur=E1vel, n=E3o deu e ponto. De qualquer f= orma=20 o Notes 2, pelos planos que temos hoje, ser=E1 a IDE mais configur=E1vel que eu conhe=E7o - e disparado. S= e=20 algo tiver que ser definido de forma um pouco menos configur=E1vel para poder funcionar ou para poder ficar realmente=20 bom, podemos arriscar, acho que vale =E0 pena... >entao...o que preferem C++ ou Obj Pascal? > Pra poder meter o bedelho, eu prefiro Obj Pascal! :) Abra=E7o, Anderson |
From: <fa...@nl...> - 2003-07-29 20:51:01
|
> >O componente scaneia o código e busca por estruturas chaves que estariam > >guardadas em uma base ex: > > > > if(...){...} > > > > for ... to ... do > > begin > > ... > > end; > > > Tá, mas como a gente vai guardar isto num arquivo XML? > A única idéia que tive foi algo assim: > <estrutura findkeyword="if"> > (*)\s{*} > </estrutura> > > Em português: "quando a palavra-chave *"if"* for encontrada deve haver > um "*("*, seguido por um trecho com quaisquer > caracteres em qualquer número*,* mais um *")"* seguido por caracteres > espaços (espaço, tab ou quebra de linha) e logo > depois um *"{"* seguido de um trecho com quaiquer caracteres e > finalmente mais um *"}"*". > > Seria algo assim? mais ou menos...eu estou analizando qual seria a melhor maneira porque essa parte é crucial para o desempenho, mencionei XML por causa da quantidade de coisas que já serão no mesmo mas seria incantáveis vezes mais simples trabalhar com ele em arquivo. Deixo a critério também. > O que não der para ser configurável, não deu e ponto. De qualquer forma > o Notes 2, pelos planos que temos > hoje, será a IDE mais configurável que eu conheço - e disparado. Se > algo tiver que ser definido de forma um pouco > menos configurável para poder funcionar ou para poder ficar realmente > bom, podemos arriscar, acho que vale à pena... essa parte é outra delicada pois flexibilidade diminui desempenho e ao construir um sistema de busca e análize como este escolher o método de representação do conhecimento e da procura por ele de forma errada pode fazer com que uma função que levaria 3 milisegundos para ser executada demorar cerca de 35000 anos, parece mentira mas acontece sim. Abraços, Thiago Cavalcanti --------------------------------------------------- Este e-mail foi enviado por http://www.nlink.com.br |