Cumpilador

Ourige: Biquipédia, la anciclopédia lhibre.
 Nota: Se percura por cumpilaçon musical, cunsulta Coletánea musical.
Ua catura de tela de l cumpilador GCC berson 4.0.2 rodando nua jinela xtern. Un porgrama simples stá sendo cumpilado i anton eisecutado.

Un cumpilador ye un porgrama de cumputador (ó un grupo de porgramas) que, a partir dun código fuonte scrito nua lenguaige cumpilada, cria un porgrama semanticamente eiquibalente, mas scrito an outra lenguaige, código oubjeto.[1] El ye chamado cumpilador por rezones stóricas; ne ls purmeiros anhos de la porgramaçon outomática, eisistian porgramas que percorrian bibliotecas de subrotinas i las reunia juntas, ó cumpilaba,[Nota 1] las subrotinas neçairas para eisecutar ua detreminada tarefa.[2][3]

L nome "cumpilador" ye ousado percipalmente pa ls porgramas que traduzen l código fuonte dua lenguaige de porgramaçon d'alto nible para ua lenguaige de porgramaçon de baixo nible (por eisemplo, Assembly ó código de máquina). Assi i to alguns outores citan eisemplos de cumpiladores que traduzen para lenguaiges d'alto nible cumo C.[4] Para alguns outores un porgrama que faç ua traduçon antre lenguaiges d'alto nible ye normalmente chamado un tradutor, filtro[5] ó cumbersor de lenguaige. Un porgrama que traduç ua lenguaige de porgramaçon de baixo nible para ua lenguaige de porgramaçon d'alto nible ye un çcumpilador.[6] Un porgrama que faç ua traduçon antre ua lenguaige de montaige i l código de máquina ye chamado montador (assembler).[5] Un porgrama que faç ua traduçon antre l código de máquina i ua lenguaige de montaige ye chamado çmontador (çassembler).[6] Se l porgrama cumpilado puode ser eisecutado nun cumputador cuja CPU ó sistema ouperacional ye defrente daquele an que l cumpilador ye eisecutado, l cumpilador ye coincido cumo un cumpilador cruzado.[7]

Stória[eiditar | eiditar código-fuonte]

Grace Hopper an 1984.

Ls softwares pa ls purmeiros cumputadores fúrun scritos percipalmente an lenguaige assembly por muitos anhos. Las lenguaiges d'alto nible de porgramaçon nun fúrun ambentadas até que ls benefícios de ser capaç de reutelizar software an defrentes tipos de CPUs passassen a ser seneficatibamente maiores de l que l custo de se screbir un cumpilador. La capacidade de mimória mui lemitada capacidade de ls purmeiros cumputadores tamien criaba muitos porblemas técnicos na amplementaçon dun cumpilador.

Ne l final de la década de 1950, las lenguaiges de porgramaçon andependientes de máquina fúrun perpuostas. Mais tarde, bários cumpiladores spurmentales fúrun zambolbidos. L purmeiro cumpilador fui scrito por Grace Hopper,[8] an 1952, pa la lenguaige de porgramaçon La-0.[9] Antes de 1957, fúrun zambolbidos sfuorços i bárias cuntribuiçones al zambolbimiento de lenguaiges d'alto nible fúrun feitas. Antre estes, l zambolbimiento de la Short Code (UNIBAC), Spedcoding ne l IBM 701,[10][11] l Whirlwind, l BACAIC i l PRINT.[12] L'eiquipe de zambolbimiento de l FORTRAN liderada por John Backus na IBM ye giralmente creditada cumo tenendo antroduzido l purmeiro cumpilador cumpleto an 1957 (ambora tenga ocorrido a la par l zambolbimiento de l algebraic traslator de Laning i Zierler[9]). L COBOL ye un eisemplo dua lenguaige de la purmeira geraçon que cumpilaba an múltiplas arquiteturas, an 1960.[13]

An muitos domínios d'aplicaçon l'eideia d'ousar ua lenguaige d'alto nible debrebe ganhou fuorça. Por causa de la funcionalidade de spanson apoiada por lenguaiges de porgramaçon recentes i la cumplexidade crecente d'arquiteturas de cumputadores, ls cumpiladores tornórun-se mais i mais cumplexos.

Ls purmeiros cumpiladores fúrun scritos an lenguaige assembly. L purmeiro cumpilador de outo-hospedaige - capaç de cumpilar sou própio código-fuonte nua lenguaige d'alto nible - fui criado pa l Lisp por Tin Hart i Lebin Mike ne l MIT an 1962.[14]

Caratelísticas[eiditar | eiditar código-fuonte]

L porcesso de la cumpilaçon.

Normalmente, l código fuonte ye scrito nua lenguaige de porgramaçon d'alto nible, cun grande capacidade d'abstraçon, i l código oubjeto ye scrito nua lenguaige de baixo nible,[15] cumo ua sequéncia d'anstruçones a ser eisecutada pul microprocessador.

L porcesso de cumpilaçon ye cumpuosto d'análeze i síntese.[16] L'análeze ten cumo oubjetibo antender l código fuonte i repersentá-lo nua strutura antermediária. La síntese custrói l código oubjeto a partir desta repersentaçon antermediária.

La análeze puode ser subdebidida inda an análeze léxica, análeze sintática, análeze semántica i geraçon de código antermediairo. Ye tamien coincida cumo frunt and.[16] La síntese puode tener mais bariaçones dun cumpilador a outro, podendo ser cumpuosta pulas etapas d'outimizaçon de código i geraçon de código final (ó código de máquina), sendo solamente esta radadeira etapa ye oubrigatória. Ye tamien coincida cumo back and.[16]

Classicamente, un cumpilador traduç un porgrama dua lenguaige textual facilmente antendida por un ser houmano para ua lenguaige de máquina, specífica para un processador i sistema ouperacional. Atualmente, mas, son quemuns cumpiladores que gírun código para ua máquina birtual que ye, depuis, anterpretada por un anterpretador.

An lenguaiges híbridas, l cumpilador ten l papel de cumberter l código fuonte nun código chamado de byte code, que ye ua lenguaige de baixo nible. Un eisemplo deste cumportamiento ye l de l cumpilador de la lenguaige Java que, an beç de gerar código de la máquina hospedeira (adonde se stá eisecutando l cumpilador), gera código chamado Java Bytecode.[17]

Un cumpilador ye chamado de Just-in-eiquipa cumpiler (JIT) quando sou porcesso de cumpilaçon acuntece solo quando l código ye chamado.[18] Un JIT puode fazer outimizaçones a las anstruçones la medida que las cumpila.[18]

Muitos cumpiladores ancluen un pré-processador. Un pré-processador ye un porgrama apartado, atibado pul cumpilador antes de l'ampeço de l porcesso de traduçon.[19] Normalmente ye respunsable por mudanças ne l código fuonte çtinadas d'acuordo cun decisones tomadas an tiempo de cumpilaçon. Por eisemplo, un porgrama an C permite anstruçones cundicionales pa l pré-processador que puoden ancluir ó nun parte de l código causo ua assertiba lógica seia berdadeira ó falsa, ó simplesmente un termo steia defenido ó nó. Tecnicamente, pré-processadores son mui mais simples que cumpiladores i son bistos, puls zambolbedores, cumo porgramas a la parte, anque dessa bison nun ser necessariamente cumpartilhada pul usuairo.

Outra parte apartada de l cumpilador que muitos usuairos bénen cumo antegrada ye l linker, cuja funçon ye ounir bários porgramas yá cumpilados dua forma andependiente i unificá-los nun porgrama eisecutable.[20] Esso anclui poner l porgrama final nun formato cumpatible culas necidades de l sistema ouperacional para carregá-lo an mimória i colocá-lo an eisecuçon.

Fases de la cumpilaçon[eiditar | eiditar código-fuonte]

Análeze léxica[eiditar | eiditar código-fuonte]

Ber artigo percipal: Análeze léxica

L'análeze léxica ye la purmeira fase de l cumpilador.[21] La funçon de l'analisador léxico, tamien chamado scanner, ye ler l código fuonte, carater a carater, buscando la separaçon i eidantificaçon de ls eilemientos cumponentes de l porgrama fuonte, chamados simblos léxicos ó tokenes.[22] Ye tamien de respunsabelidade desta fase l'eliminaçon d'eilemientos "decoratibos" de l porgrama, tales cumo spácios an branco, marcas de formataçon de testo i comentairos.[23] Eesisten çponibles ua série de geradores outomáticos d'analisadores léxicos, cumo por eisemplo, l lex. L'oubjetibo de ls geradores outomáticos ye lemitar l sfuorço de porgramaçon dun analisador léxico specificando-se solo ls tokenes a ser reconhecidos.[24]

Análeze sintática[eiditar | eiditar código-fuonte]

L'análeze sintática, ó análeze gramatical ye l porcesso de se detreminar se ua cadeia de simblos léxicos puode ser gerada por ua gramática.[25] L'analisador sintático ye l cerne de l cumpilador, respunsable por berificar se ls simblos cuntidos ne l porgrama fuonte forman un porgrama bálido, ó nó.[26] Ne l causo d'analisadores sintáticos top-down, tenemos l'oupçon de screbé-los a a mano ó gerá-los de forma outomática, mas ls analisadores botton-up solo puoden ser gerados outomaticamente.[27] La maiorie de ls métodos d'análeze sintática, cai nua dessas dues classes chamadas top-down i botton-up.[28] Antre ls métodos top-down ls mais amportantes son l'análeze sintática çcendente recursiba i l'análeze sintática preditiba nó-recursiba. Antre ls métodos d'análeze sintática botton-up ls mais amportantes son l'análeze sintática de precedéncia d'ouperadores, análeze sintática LR canónico, análeze sintática LALR i análeze sintática SLR.[25] Eesisten çponibles ua série de geradores outomáticos d'analisadores sintáticos,[29] cumo por eisemplo, l Yac, l Bison i l JavaCC.

Análeze semántica[eiditar | eiditar código-fuonte]

Ber artigo percipal: Análeze semántica

Las análezes léxica i sintática nun stan preacupadas cul seneficado ó semántica de ls porgramas qu'eilhas processan. L papel de l'analisador semántico ye prober métodos puls quales las struturas custruídas pul analisador sintático puodan ser abaluadas ó eisecutadas.[30] Las gramáticas libres de cuntesto nun son suficientemente poderosas para çcrebir ua série de custruçones de las lenguaiges de porgramaçon, cumo por eisemplo regras de scopo, regras de besibelidade i cunsisténcia de tipos.[31] Ye papel de l'analisador semántico assegurar que todas las regras sensibles al cuntesto de la lenguaige stéian analisadas i berificadas quanto a la sue balidade. Un eisemplo de tarefa própia de l'analisador semántico ye la checaige de tipos de bariables an spressones.[32] Un de ls macanismos quemumente outelizados por amplementadores de cumpiladores ye la Gramática de Atributos, que cunsiste nua gramática libre de cuntesto acrecentada dun cunjunto fenito d'atributos i un cunjunto fenito de predicados subre estes atributos.[33]

Geraçon de código antermediairo[eiditar | eiditar código-fuonte]

Eisemplo de código de trés andereços i un DAG correspondente para ua spresson aritimética.
Ber artigo percipal: Geraçon de código

Na fase de geraçon de código antermediairo, ocorre la trasformaçon de l'arble sintática nua repersentaçon antermediária de l código fuonte. Esta lenguaige antermediária ye mais próssima de la lenguaige oubjeto de l que l código fuonte, mas inda permite ua manipulaçon mais fácele de l que se código assembly ó código de máquina fusse outelizado.[34] Un tipo popular de lenguaige antermediária ye coincido cumo código de trés andereços.[35] Neste tipo de código ua sentença típica ten la forma X := L'oup B, adonde X, La i B son ouperandos i oup ua ouparaçon qualquiera. Ua forma prática de repersentar sentenças de trés andereços ye atrabeç de l'uso de quádruplas (ouperador, argumiento 1, argumiento 2 i, resultado). Este squema de repersentaçon de código antermediairo ye preferido por dibersos cumpiladores, percipalmente aqueilhes qu'eisecutan stensibas outimizaçones de código, ua beç que l código antermediairo puode ser rearranjado dua maneira cumbeniente cun facelidade.[36]Outras repersentaçones de código antermediairo quemumente ousadas son las triplas, (similares las quádruplas sceto pul fato de que ls resultados nun son nomeados splicitamente) las arbles, ls grafos acíclicos dirigidos(DAG) i la notaçon polonesa.[37]

Outimizaçon de código[eiditar | eiditar código-fuonte]

La Outimizaçon de código ye la stratégia d'eisaminar l código antermediairo, porduzido durante la fase de geraçon de código cun oubjetibo de porduzir, atrabeç d'alguas técnicas, un código qu'eisecute cun bastante eficiéncia.[32] L nome outimizador debe siempre ser ancarado cun cuidado, pus nun se puode criar un porgrama que leia un porgrama P i gere un porgrama P´ eiquibalente sendo melhor possible segundo l critério adotado.[23] Bárias técnicas i bárias tarefas se reúnen sob l nome de Outimizaçon. Estas técnicas cunsisten an detetar padrones drento de l código porduzido i sustituí-los por códigos mais eficientes.[36] Antre las técnicas ousadas stan la sustituiçon de spressones que puoden ser abaluadas durante l tiempo de cumpilaçon puls sous balores calculados, eliminaçon de sub-spressones redundantes, çmembramiento de laços, sustituiçon d'ouparaçones (multiplicaçon por shifts), antre outras.[32] Ua de las técnicas d'outimizaçon mais eficazes i andependiente de máquina ye l'outimizaçon de laços, pus laços anternos son buns candidatos para melhories. Por eisemplo, an causo de cumputaçones fixas drento de laços, ye possible mober estas cumputaçones para fura de ls mesmos reduzindo processamiento.[38]

Geraçon de código final[eiditar | eiditar código-fuonte]

Ber artigo percipal: Geraçon de código

La fase de geraçon de código final ye la radadeira fase de la cumpilaçon. La geraçon dun buono código oubjeto ye defícel debido als detalhes particulares de las máquinas pa ls quales l código ye gerado. Assi i to, ye ua fase amportante, pus ua buona geraçon de código puode ser, por eisemplo, dues bezes mais rápida qu'un algoritmo de geraçon de código ineficiente.[36] Nin todas las técnicas d'outimizaçon son andependientes de l'arquitetura de la máquina-albo. Outimizaçones dependentes de la máquina necessitan d'anformaçones tales cumo ls lemites i ls recursos speciales de la máquina-albo la fin de porduzir un código mais cirne i eficiente. L código porduzido pul cumpilador debe se aprobeitar de ls recursos speciales de cada máquina-albo.[32] Segundo Aho, l código oubjeto puode ser ua sequéncia d'anstruçones absolutas de máquina, ua sequéncia d'anstruçones de máquina relocables, un porgrama an lenguaige assembly ó un porgrama an outra lenguaige.[39]

Tratamiento d'erros[eiditar | eiditar código-fuonte]

Tratamiento d'erro d'eisecuçon nua aplicaçon Java ne l Eclipse.

L tratamiento d'erros stá buoltado la falhas debido la muitas causas: erros ne l cumpilador, erros na eilaboraçon de l porgrama a ser cumpilado, erros ne l'ambiente (hardware, sistema ouperacional), dados ancorretos, etc. Las tarefas relacionadas al tratamiento d'erros cunsiten an detetar cada erro, reportá-lo al usuairo i possiblemente fazer algun reparo para que l processamiento puoda cuntinar.[40]

Ls erros puoden ser classeficados an erros léxicos, erros sintáticos, erros nun andependientes de cuntesto (semánticos), erros d'eisecuçon i erros de lemite.[41] Ls erros léxicos ocorren quando un token eidantificado nun pertence la gramática de la lenguaige fuonte. Ls erros sintáticos ocorren quando algua strutura de frase nun stá d'acuordo cula gramática, cumo por eisemplo parénteses sin correspondéncia. Ls erros nun andependientes de cuntesto an giral son associados la nó declaraçon d'oubjetos cumo bariables i erros de tipos. Ls erros d'eisecuçon ocorren passado la cumpilaçon, quando l porgrama yá stá sendo eisecutado. Un eisemplo típico ye l de la debison por zero. Ls erros de lemite, ocorren durante l'eisecuçon i stan relacionados las caratelísticas de la máquina na qual l porgrama stá sendo eisecutado, cumo por eisemplo, stouro de pilha.[41]

Alguns cumpiladores ancerran l porcesso de traduçon lougo al ancontrar l purmeiro erro de l porgrama-fuonte. Esta ye ua política de fácele amplementaçon. Cumpiladores mais sofisticados, mas, detetan l maior númaro possible d'erros bisando diminuir l númaro de cumpilaçones.[42]

La recuperaçon d'erros an analisadores sintáticos top-down ye mais fácele d'amplementar de l qu'an analisadores botton-up.[43] L porblema ye que defrente dun analisador top-down, este radadeiro nun sabe quales simblos son sperados na antrada, solamente ls que yá fúrun processados. Puode-se ousar neste causo técnicas cumo, por eisemplo, la técnica de panic-mode que percura an tabelas sintáticas an busca de simblos bálidos na antrada.[43] Nesta técnica se çcartan simblos de l'antrada até qu'un delimitador (cumo un punto i bírgula, por eisemplo) seia ancontrado. L'analisador apaga las antradas de la pilha até qu'ancontre ua antrada que permita que l porcesso d'análeze prossiga an delantre.[44]

Ber tamien[eiditar | eiditar código-fuonte]

Notas[eiditar | eiditar código-fuonte]

  1. An pertués, "cumpilar" senefica, por eisemplo: reunir obras literárias, decumientos, scritos de bários outores, antre outros, cumpondo ua obra cun esse material. Dicionário de la Léngua Pertuesa. [S.l.: s.n.] ISBN 85-85222-23-9  Parâmetro desconhecido |Eiditora= ignorado (|eiditora=) sugerido (ajuda); Parâmetro desconhecido |Outor= ignorado (|outor=) sugerido (ajuda); Parâmetro desconhecido |Anho= ignorado (|anho=) sugerido (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda)

Refréncias

  1. Principles of Cumpiler Zeign. Reading, Massachusetts, EUA: Addison-Wesley. 1977. p. 1. 604 páiginas. ISBN 0-201-00022-9  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda); |cooutores= requer |outor= (ajuda)
  2. Antrodution to Cumpiler Custrution. Nuoba Iorque, EUA: Cumputer Science Press. 1992. p. 1. 359 páiginas. ISBN 0-7167-8261-8  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  3. Modern Cumpiler Amplementation in Java. Cambridge: [s.n.] p. 3. 548 páiginas. ISBN 0-521-58388-8  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |Eiditora= ignorado (|eiditora=) sugerido (ajuda); Parâmetro desconhecido |Anho= ignorado (|anho=) sugerido (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  4. Anginering la Cumpiler. San Francisco: [s.n.] p. 2. ISBN 1-55860-698-X  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |Eiditora= ignorado (|eiditora=) sugerido (ajuda); Parâmetro desconhecido |Anho= ignorado (|anho=) sugerido (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  5. 5,0 5,1 Antroduçon a la Cumpilaçon. Riu de Janeiro: LTC. 1987. 222 páiginas. ISBN 978-85-216-0483-9  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  6. 6,0 6,1 Porgramming Language Processors in Java. Harlow, Angland: Prentice Preça de casa. 2000. p. 27. 436 páiginas. ISBN 0-130-25786-9  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  7. Cumpiler Cuntrution. La Recursibe Çcent Model. 1. Anglewod Cliffs, Nuoba Jersey, EUA: Prentice Preça de casa. 1994. p. 7-8. 437 páiginas. ISBN 0-13-291139-6  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  8. Fundamentals of Cumpilers. An Antrodution to Cumputer Language Traslation. Boca Raton: CRC. 1992. 184 páiginas. ISBN 0-8493-7341-7  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  9. 9,0 9,1 Wexelblat, Richard L.(Eiditor) (1981). Story of Porgramming Languages. New York: Academic Press. p. 6-15. 758 páiginas. ISBN 0-12-745040-8 
  10. . Cambridge: [s.n.]. ISBN 0-262-02225-7
  11. McClelland, William F (1983). «Porgramming». Annals of The Story of Cumputing (an angles). 5 (2). Arlington, BA: Amarican Federation of Anformation Processing Societies. pp. 135–139. ISSN 1058-6180 
  12. Sammet, Jean I (1969). Porgramming Languages: Story and Fundamentals. Anglewod Cliffs, New Jersey: Prentice Preça de casa. p. 5. 785 páiginas. ISBN 0-13-729988-5 
  13. «IP: Ls purmeiros cumpiladores COBOL de l mundo». antresting-people.org. 12 de Júnio de 1997 
  14. T. Hart and M. Lebin. «L nuobo cumpilador, AIM-39 - CSAIL Digital Archibe - Artificial Antelligence Laboratory Series» (PDF). publicationes.ai.mit.edu 
  15. Writing Cumpilers and Anterpreters. An Applied Approach Using C++. Nuoba Iorque: John Wiley and Sonidos. 1996. p. 1. 838 páiginas. ISBN 0-471-11353-0  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  16. 16,0 16,1 16,2 Oubjet-Ouriented Cumpiler Custrution. Anglewod Cliffs, Nuoba Jersey: Prentice Preça de casa. 1995. p. 2-3. 483 páiginas. ISBN 0-13-630740-X  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  17. Cunceitos de Lenguaiges de Porgramaçon 9ª eid. Porto Alegre: Bookman. 2010. p. 49-50. 792 páiginas. ISBN 978-85-7780-791-8  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  18. 18,0 18,1 Porgramming fur the Java Virtual Machine. Reading, Massachusetts: Addison & Wesley. 1999. p. 355. 488 páiginas. ISBN 0-201-30972-6  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  19. Cumpiladores. Percípios i Práticas. San Paulo: Pioneira Thompson Learning. 2004. p. 5. 569 páiginas. ISBN 85-221-0422-0  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  20. Linkers & Loaders. San Francisco: Morgan Kaufmann Publishers. 2000. p. 1-3. 256 páiginas. ISBN 1-55860-496-0  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  21. The Theory of Parsing, Traslation, and Cumpeling, Bol. 1, Parsing. 1. Anglewod Cliffs, Nuoba Jersey, EUA: Prentice Preça de casa. 1972. p. 59. 542 páiginas. ISBN 0-13-914556-7  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |belumes= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda); |cooutores= requer |outor= (ajuda)
  22. Price, Ana M. La.; Toscano, Simon Sirineo (2000). Amplementaçon de Lenguaiges de Porgramaçon: Cumpiladores. Série de Libros Didáticos Númaro 9. Porto Alegre: Sagra Luzzatto. 195 páiginas. ISBN 978-85-241-0639-2  Parâmetro desconhecido |léngua3= ignorado (ajuda)
  23. 23,0 23,1 «Cumpiladores - Páigina de José Lucas Mouron Rangel Netto». PUC-Riu. Cunsultado an 21 de júnio de 2009  Parâmetro desconhecido |léngua3= ignorado (ajuda)
  24. Crafting la Cumpiler with C. Redwod City, California: Benjamin Cummings Publishing. 1991. p. 50. 812 páiginas. ISBN 0-8053-2166-7  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  25. 25,0 25,1 Cumpilers: Principles, Techniques and Tols. Reading, Massachusetts, EUA: [s.n.] 796 páiginas. ISBN 978-0-201-10088-4  Parâmetro desconhecido |Eiditora= ignorado (|eiditora=) sugerido (ajuda); Parâmetro desconhecido |Outor= ignorado (|outor=) sugerido (ajuda); Parâmetro desconhecido |Anho= ignorado (|anho=) sugerido (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda)
  26. .com.br/libros/cumpilador/ Cumo Custruir un Cumpilador Outelizando Ferramientas Java Cunsulte valor |url= (ajuda). San Paulo: [s.n.] p. 4. 308 páiginas. ISBN 85-7522-055-1  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |Eiditora= ignorado (|eiditora=) sugerido (ajuda); Parâmetro desconhecido |Anho= ignorado (|anho=) sugerido (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  27. Porjeto Moderno de Cumpiladores. Riu de Janeiro: [s.n.] ISBN 978-85-352-0876-4  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |Eiditora= ignorado (|eiditora=) sugerido (ajuda); Parâmetro desconhecido |Anho= ignorado (|anho=) sugerido (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda); |cooutores= requer |outor= (ajuda)
  28. Cumpiler Zeign Theory. Reading, Massachusetts: [s.n.] p. 227. 647 páiginas. ISBN 0-201-14455-7  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |Eiditora= ignorado (|eiditora=) sugerido (ajuda); Parâmetro desconhecido |Anho= ignorado (|anho=) sugerido (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda); |cooutores= requer |outor= (ajuda)
  29. Pratice and Principles of Cumpiler Building with C. London: Prentice Preça de casa. 1996. p. 30. 427 páiginas. ISBN 0-13-349267-2  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  30. High-Leble Languages and Their Cumpilers. Wokinghan, Reino Ounido: Addison-Wesley. 1989. 337 páiginas. ISBN 0-201-18489-3  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  31. Wilheln, Reinhard; Maurer, Dieter (1995). Cumpiler Zeign. Harlow, Angland: Addison-Wesley. 606 páiginas. ISBN 0-201-42290-5  Parâmetro desconhecido |léngua3= ignorado (ajuda)
  32. 32,0 32,1 32,2 32,3 Tremblay, Jean-Paul; Sorenson, Paul G. (1989). The Theory and Pratice of Cumpiler Writing. Nuoba Iorque: McGraw-Hill. 796 páiginas. ISBN 0-07-065161-2  Parâmetro desconhecido |léngua3= ignorado (ajuda)
  33. Pittman, Thomas; Peters, James (1992). The Art of Cumpiler Zeign. Theory and Pratice. Anglewod Cliffs, Nuoba Jersey, EUA: Prentice Preça de casa. 419 páiginas. ISBN 0-13-048190-4  Parâmetro desconhecido |léngua3= ignorado (ajuda)
  34. Cumpiler Zeign and Custrution. Tols and Techniques. Nuoba Iorque, EUA: Ban Nostrand Reinhold Cumpany. 1988. p. 8. 267 páiginas. ISBN 0-442-27536-6  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  35. Processadores de Lenguaiges. de la Cuncepçon a la Amplementaçon. Lisboua, Pertual: [s.n.] p. 247. 435 páiginas. ISBN 972-8469-01-2  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |Eiditora= ignorado (|eiditora=) sugerido (ajuda); Parâmetro desconhecido |Anho= ignorado (|anho=) sugerido (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  36. 36,0 36,1 36,2 Aho, Alfred B.; Ullman, Jeffrey D. (1977). Principles of Cumpiler Zeign. Reading, Massachusetts, EUA: Addison-Wesley. 604 páiginas. ISBN 0-201-00022-9  Parâmetro desconhecido |léngua3= ignorado (ajuda)
  37. Adbanced Cumpiler Zeign Amplementation. San Francisco, California: Morgan Kaufmann Publishers. 1997. p. 96. 856 páiginas. ISBN 1-55860-320-4  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  38. Algorithms fur Cumpiler Zeign. Hinghan: Charles Riber medie. 2003. 334 páiginas. ISBN 81-7008-100-6 Cunsulte |isbn= (ajuda)  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  39. Aho, Alfred B.; Ullman, Jeffrey D. (1972). The Theory of Parsing, Traslation, and Cumpeling, Bol. 2, Cumpeling. 2. Anglewod Cliffs, Nuoba Jersey, EUA: Prentice Preça de casa. p. 720. ISBN 0-201-914564-8 Cunsulte |isbn= (ajuda)  Parâmetro desconhecido |belumes= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda)
  40. Cumpiler Custrution. Nuoba Iorque: Springer-Berlag. 1984. p. 302. 446 páiginas. ISBN 0-387-90821-8  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  41. 41,0 41,1 Cumpiladores. Sue Cuncepçon i Porgramaçon an Pascal. Lisboua: Persença. 1987. p. 259-275. 323 páiginas. Depósito legal mº 16057/87  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  42. Amplementaçon de Lenguaiges de Porgramaçon. Riu de Janeiro: [s.n.] p. 170-171. 189 páiginas. ISBN 85-7030-009-3  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |Eiditora= ignorado (|eiditora=) sugerido (ajuda); Parâmetro desconhecido |Anho= ignorado (|anho=) sugerido (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  43. 43,0 43,1 Cumpiler Zeign in C. Anglewod Cliffs, Nuoba Jersey: Prentice Preça de casa. 1990. p. 201;348. 924 páiginas. ISBN 0-13-155045-4  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  44. Algorithms fur Cumpiler Zeign. Hinghan: Charles Riber medie. 2003. p. 261. 334 páiginas. ISBN 81-7008-100-6 Cunsulte |isbn= (ajuda)  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)

Bibliografie[eiditar | eiditar código-fuonte]

  • Modern Cumpiler Amplementation in C. Basic Techiques. [S.l.: s.n.] 398 páiginas. ISBN 0-521-58653-4  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |Eiditora= ignorado (|eiditora=) sugerido (ajuda); Parâmetro desconhecido |Anho= ignorado (|anho=) sugerido (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  • Writing Anteratibe Cumpilers and Anterpreters. Chichester: John Wiley & Sonidos. 1979. 265 páiginas. ISBN 0-471-27609-X  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  • Custruting Language Processors fur Little Languages. Nuoba Iorque: John Wiley & Sonidos. 1994. 452 páiginas. ISBN 0-471-59754-6  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  • The Anatomy of la Cumpiler. Nuoba Iorque: Reinhold Publishing Cumpany. 1967. 275 páiginas. Library of Cungress Catalog Card Number: 67-29207  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  • Building Parsers with Java. Boston: Addison-Wesley. 2001. 371 páiginas. ISBN 0-201-71962-2  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  • Antroduçon a la Cumpilaçon. Riu de Janeiro: Campus, Eilsebier. 2008. 264 páiginas. ISBN 978-85-352-3067-3  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  • Porgramming Language Traslation. La Pratical Approach. Wokinghan: Addison-Wesley. 1986. 443 páiginas. ISBN 0-201-18040-5  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)
  • Cumpiler Custrution Cunsulte valor |url= (ajuda). [S.l.: s.n.] ISBN 0-201-40353-6  Parâmetro desconhecido |radadeiro= ignorado (ajuda); Parâmetro desconhecido |Eiditora= ignorado (|eiditora=) sugerido (ajuda); Parâmetro desconhecido |Anho= ignorado (|anho=) sugerido (ajuda); Parâmetro desconhecido |léngua3= ignorado (ajuda); |nome1= sem |sobrenome1= em Authors list (ajuda)

Ligaçones sternas[eiditar | eiditar código-fuonte]

Ls outros porjetos Wikimedia tamien ténen material subre este tema: