Attribute grammar (original) (raw)
In teoria dei linguaggi formali, una grammatica ad attributi è una grammatica formale che associa un significato alle . È un'estensione del formalismo delle grammatiche libere dal contesto, ed ha applicazioni in informatica, in particolare è usata nella traduzione di un programma .
Property | Value |
---|---|
dbo:abstract | سمات النحو (Attribute grammar) بالانجليزيه تدقيق نحوي سمة وسيلة رسمية لتعريف سمات لعمليات الإنتاج من النحو الرسمي، اقتران هذه السمات بالقيم. التقييم يحدث في عقد شجرة بنية مجردة، عند اللغة التي تتم معالجتها بواسطة بعض المحلل اللغوي أو المترجم. السمات تنقسم إلى مجموعتين: تلخيص السمات والسمات الموروثة. السمات المركبة هي نتيجة للسمة قواعد التقييم، ويمكن أيضا استخدام قيم السمات الموروثة. يتم تمرير السمات الموروثة إلى أسفل من العقد الأصلي. في بعض المناهج، تستخدم سمات تجميعي لتمرير المعلومات الدلالية أعلى شجرة الظاهر، بينما تساعد السمات الموروثة تمرير المعلومات الدلالية لأسفل وعبرها. على سبيل المثال، عند بناء أداة ترجمة لغة، مثل المحول برمجي، قد تستخدم لتعيين القيم الدلالية للإنشاءات بناء الجملة. أيضا، فمن الممكن للتحقق من صحة الشيكات الدلالي المقترن التدقيق نحوي، تمثل قواعد اللغة لا صراحة تقدمها تعريف بناء الجملة. يمكن أيضا استخدام قواعد النحو سمة ترجمة شجرة بناء الجملة مباشرة في التعليمات البرمجية لبعض آلة معينة، أو إلى بعض من اللغة الوسيطة. قوة واحدة من قواعد النحو السمة أنها يمكن نقل المعلومات من أي مكان في شجرة بنية مجردة إلى أي مكان آخر، بطريقة رسمية والتي تسيطر عليها . (ar) Atributové gramatiky je formalismus v matematické informatice poskytující rozšíření formálních gramatik o přenos informací v rámci přepisovacího pravidla, což umožňuje přenos (např. sémantických) informací z libovolného místa v abstraktním syntaktickém stromě kamkoli jinam, řízeným a formálním způsobem. Ke každému terminálnímu nebo neterminálnímu symbolu gramatiky je možné připojit jeden nebo více atributů, a ke každému přepisovacímu pravidlu jsou přiřazeny tak zvané sémantické funkce, pomocí kterých se při použití tohoto pravidla počítají z některých atributů symbolů použitých v pravidle hodnoty dalších atributů symbolů použitých v pravidle. Atributové gramatiky umožňují při rozšířit syntaktický analyzátor o možnost přenášet různé doplňující informace během analýzy vstupního řetězce. Atributy mohou být použity pro přiřazení sémantických hodnot syntaktickým konstrukcím (například rozlišit, zda operátor + znamená sčítání celých čísel, sčítání reálných čísel, zřetězení nebo sjednocení množin nebo má jiný význam). Atributy také umožňují validovat podmínky, které nejsou přímo vyjádřeny pomocí syntaxe, ale jako doplňující sémantická pravidla přiřazená k jednotlivým pravidlům gramatiky (například kontrolovat typová omezení nebo kontrolovat, zda jsou použité identifikátory deklarovány). Atributové gramatiky lze použít pro převod syntaktického stromu přímo na kód pro určitý stroj nebo do nějaké formy mezijazyka. Podle toho, zda sémantická funkce slouží pro vyčíslení hodnoty atributu symbolu z levé nebo z pravé strany přepisovacího pravidla, se atributy dělí na syntetizované (funkce vyčísluje atributy symbolu na levé straně pravidla) a zděděné (příp. dědičné). Zatímco syntetizované atributy umožňují přenos sémantické informace derivačním stromem vzhůru, zděděné atributy umožňují předávání hodnot z rodičovských uzlů dolů a napříč syntaktickým stromem. (cs) An attribute grammar is a formal way to supplement a formal grammar with semantic information processing. Semantic information is stored in attributes associated with terminal and nonterminal symbols of the grammar. The values of attributes are result of attribute evaluation rules associated with productions of the grammar. Attributes allow to transfer information from anywhere in the abstract syntax tree to anywhere else, in a controlled and formal way. Each semantic function deals with attributes of symbols occurring only in one production rule: both semantic function parameters and its result are attributes of symbols from one particular rule. When a semantic function defines the value of an attribute of the symbol on the left hand side of the rule, the attribute is called synthesized; otherwise it is called inherited. Thus, synthesized attributes serve to pass semantic information up the parse tree, while inherited attributes allow values to be passed from the parent nodes down and across the syntax tree. In simple applications, such as evaluation of arithmetic expressions, attribute grammar may be used to describe the entire task to be performed besides parsing in straightforward way; in complicated systems, for instance, when constructing a language translation tool, such as a compiler, it may be used to validate semantic checks associated with a grammar, representing the rules of a language not explicitly imparted by the syntax definition. It may be also used by parsers or compilers to translate the syntax tree directly into code for some specific machine, or into some intermediate language. (en) Eine Attributgrammatik ist eine kontextfreie Grammatik, die um Attribute sowie Regeln und Bedingungen erweitert ist. Angewandt wird das Konzept im Compilerbau, um beispielsweise die Einhaltung von Regeln zu überprüfen, die mit kontextfreien Grammatiken nicht formuliert werden können. Solche Regeln sind z. B. die, dass jede Variable deklariert sein muss und ihrem Datentyp entsprechend verwendet wird. Das Konzept der Attributgrammatiken wurde ursprünglich von Donald E. Knuth eingeführt. Ein Compiler überprüft die Einhaltung dieser Regeln während der semantischen Analyse. Dabei hat er nur die Informationen zur Verfügung, die im Syntaxbaum des Programms enthalten sind. Zusätzliche Informationen, die die semantische Analyse erleichtern, kann man als Attribute in den Syntaxbaum integrieren. Zum Beispiel kann der Typ eines Ausdrucks als Attribut an den entsprechenden Knoten im Syntaxbaum annotiert werden. Durch Attributregeln und -bedingungen können zusätzlich Abhängigkeiten von anderen Attributen (auch anderer Knoten im Syntaxbaum) angegeben werden. Die Programmierung der betreffenden Teile des Compilers vereinfacht sich, wenn die Produktionen der Grammatik selbst mit entsprechenden Attributen versehen werden. (de) Une grammaire attribuée est une manière formelle de définir des attributs pour les productions d'une grammaire, associant ces attributs à des valeurs. L'évaluation a lieu dans les nœuds de l'arbre syntaxique abstrait quand le langage est traité par un analyseur syntaxique ou un compilateur. Les attributs sont divisés en deux groupes : les attributs synthétisés et les attributs hérités. Les attributs synthétisés sont le résultat des règles d'évaluation des attributs ; ils peuvent aussi utiliser les valeurs d'attributs hérités. Les attributs hérités sont passés vers les feuilles à partir des nœuds parents. Dans certaines approches, on utilise les attributs synthétisés pour passer des informations sémantiques vers la racine de l'arbre. De même, les attributs hérités permettent de passer des informations sémantiques vers les feuilles. Par exemple, lors de la construction d'un outil de traduction de langage, tel qu'un compilateur, on peut utiliser une grammaire attribuée pour affecter des valeurs sémantiques à des constructions syntaxiques. Il est aussi possible de faire des validations sémantiques associées à une grammaire. Ces validations sémantiques représentent les règles du langage non explicitement importées par la syntaxe. On peut aussi utiliser des grammaires attribuées pour traduire l'arbre syntaxique directement en code pour une machine spécifique, ou dans un langage intermédiaire. Les grammaires attribuées peuvent transporter de l'information de n'importe où vers n'importe où dans l'arbre abstrait, d'une manière contrôlée et formelle. C'est leur force. (fr) In teoria dei linguaggi formali, una grammatica ad attributi è una grammatica formale che associa un significato alle . È un'estensione del formalismo delle grammatiche libere dal contesto, ed ha applicazioni in informatica, in particolare è usata nella traduzione di un programma . (it) 属性文法(ぞくせいぶんぽう、Attribute Grammar)とは、形式文法の生成に関する属性を定義する形式的手法。属性には値を関連付けられる。その言語を構文解析やコンパイラで処理する際に、属性の評価(属性から値を得ること)が抽象構文木上のノードで行われる。 属性は2種類に分類される。合成(sythesized)属性と継承(inherited)属性である。合成属性とは、属性評価の結果として生成されるものであり、継承属性の値を使用することもある。継承属性とは、親ノードから継承される属性である。 いくつかの手法では、合成属性は意味情報を構文解析木の上に渡すのに使われ、継承属性は逆に下に渡すのに使われる。例えば、言語変換ツールを作成する場合、属性文法は構文要素に意味(値)を設定するのに使われる。また、文法(構文規則だけでは明示的に示されない言語の規則)に従って意味論的検証を行うことも可能である。 属性文法を応用している、最も広まっているツールはyacc(及びBisonなどの互換ツール)である。yaccはLALR(1)のパーサを構文規則群から生成できるパーサジェネレータだが、各規則に付けられる「セマンティックアクション」と呼ばれているコード片は、直接パーサのC言語のコード中に展開されて埋め込まれるというプリミティブな実現法ではあるが、子ノードの値を受け取って合成し(例えば、子ノードを葉とする枝のデータ構造を作り)、左辺の非終端記号の値として設定する、といったことができるという、属性を扱えるツールとなっている。一般には(具象)構文木を構築することが多いが、簡単な言語とターゲットであれば、ネイティブコードあるいは中間言語のコードをそこで生成することも不可能でもない。 (ja) Een attributengrammatica is een formele methode voor het specificeren van structurele eigenschappen van een programmeertaal door de productieregels van een contextvrije grammatica aan te vullen met regels die betrekking hebben op de (contextgevoelige) structuur van de taal. Attributengrammatica's kunnen gebruikt worden om structurele eigenschappen van een taal te specificeren die moeilijk, of helemaal niet, in een contextvrije grammatica vastgelegd kunnen worden. Voorbeelden hiervan zijn onder andere de eisen die een taal stelt wat betreft het gebruik van verschillende datatypen in expressies en de eis dat een variabele gedeclareerd moet worden voor deze gebruikt wordt. (nl) Uma gramática de atributos é uma formalização que permite definir os atributos para as produções de uma gramática formal, associando estes atributos com valores. A avaliação ocorre nos nodos da árvore sintática abstrata, quando a linguagem é processada por algum analisador sintático ou compilador. (pt) |
dbo:wikiPageExternalLink | http://melt.cs.umn.edu/silver/ https://wiki.haskell.org/Attribute_grammar https://www4.di.uminho.pt/~jas/Research/LRC/lrc.html https://www.csee.umbc.edu/courses/331/fall16/01/resources/papers/Knuth67AG.pdf https://www.csee.umbc.edu/courses/graduate/631/Fall2002/p196-paakki.pdf https://github.com/melt-umn/silver https://web.archive.org/web/20211121090327/https:/www.csee.umbc.edu/courses/331/fall16/01/resources/papers/Knuth67AG.pdf http://www.cs.uu.nl/wiki/bin/view/HUT/AttributeGrammarSystem http://www.haskell.org/haskellwiki/The_Monad.Reader/Issue4/Why_Attribute_Grammars_Matter |
dbo:wikiPageID | 479975 (xsd:integer) |
dbo:wikiPageLength | 8518 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1068100633 (xsd:integer) |
dbo:wikiPageWikiLink | dbr:Peter_Wegner dbr:L-attributed_grammar dbr:Compiler dbr:Compositionality dbr:Context-free_grammar dbr:Bottom-up_parsing dbr:LR-attributed_grammar dbr:Functional_programming dbr:S-attributed_grammar dbr:ECLR-attributed_grammar dbr:Formal_grammar dbr:Haskell_(programming_language) dbr:Attribute_(computing) dbr:Abstract_syntax_tree dbc:Compiler_construction dbc:Formal_languages dbc:Parsing dbr:Affix_grammar dbr:Terminal_and_nonterminal_symbols dbr:Donald_Knuth dbr:Aspect-oriented_programming dbr:IMP_(programming_language) dbr:Intermediate_language dbr:Catamorphism dbr:Van_Wijngaarden_grammar dbr:Syntax-directed_translation dbr:Parser |
dbp:wikiPageUsesTemplate | dbt:Cite_journal dbt:Reflist dbt:Sfn |
dcterms:subject | dbc:Compiler_construction dbc:Formal_languages dbc:Parsing |
gold:hypernym | dbr:Way |
rdf:type | yago:WikicatCompilers yago:CausalAgent100007347 yago:Communicator109610660 yago:Compiler109946957 yago:LivingThing100004258 yago:Object100002684 yago:Organism100004475 yago:Person100007846 yago:PhysicalEntity100001930 yago:Writer110794014 yago:YagoLegalActor yago:YagoLegalActorGeo yago:Whole100003553 |
rdfs:comment | In teoria dei linguaggi formali, una grammatica ad attributi è una grammatica formale che associa un significato alle . È un'estensione del formalismo delle grammatiche libere dal contesto, ed ha applicazioni in informatica, in particolare è usata nella traduzione di un programma . (it) Uma gramática de atributos é uma formalização que permite definir os atributos para as produções de uma gramática formal, associando estes atributos com valores. A avaliação ocorre nos nodos da árvore sintática abstrata, quando a linguagem é processada por algum analisador sintático ou compilador. (pt) سمات النحو (Attribute grammar) بالانجليزيه تدقيق نحوي سمة وسيلة رسمية لتعريف سمات لعمليات الإنتاج من النحو الرسمي، اقتران هذه السمات بالقيم. التقييم يحدث في عقد شجرة بنية مجردة، عند اللغة التي تتم معالجتها بواسطة بعض المحلل اللغوي أو المترجم. السمات تنقسم إلى مجموعتين: تلخيص السمات والسمات الموروثة. السمات المركبة هي نتيجة للسمة قواعد التقييم، ويمكن أيضا استخدام قيم السمات الموروثة. يتم تمرير السمات الموروثة إلى أسفل من العقد الأصلي. في بعض المناهج، تستخدم سمات تجميعي لتمرير المعلومات الدلالية أعلى شجرة الظاهر، بينما تساعد السمات الموروثة تمرير المعلومات الدلالية لأسفل وعبرها. على سبيل المثال، عند بناء أداة ترجمة لغة، مثل المحول برمجي، قد تستخدم لتعيين القيم الدلالية للإنشاءات بناء الجملة. أيضا، فمن الممكن للتحقق من صحة الشيكات الدلالي المقترن التدقيق نحوي، تمثل قواعد اللغة لا صراحة تقدمها (ar) Atributové gramatiky je formalismus v matematické informatice poskytující rozšíření formálních gramatik o přenos informací v rámci přepisovacího pravidla, což umožňuje přenos (např. sémantických) informací z libovolného místa v abstraktním syntaktickém stromě kamkoli jinam, řízeným a formálním způsobem. Ke každému terminálnímu nebo neterminálnímu symbolu gramatiky je možné připojit jeden nebo více atributů, a ke každému přepisovacímu pravidlu jsou přiřazeny tak zvané sémantické funkce, pomocí kterých se při použití tohoto pravidla počítají z některých atributů symbolů použitých v pravidle hodnoty dalších atributů symbolů použitých v pravidle. (cs) Eine Attributgrammatik ist eine kontextfreie Grammatik, die um Attribute sowie Regeln und Bedingungen erweitert ist. Angewandt wird das Konzept im Compilerbau, um beispielsweise die Einhaltung von Regeln zu überprüfen, die mit kontextfreien Grammatiken nicht formuliert werden können. Solche Regeln sind z. B. die, dass jede Variable deklariert sein muss und ihrem Datentyp entsprechend verwendet wird. Das Konzept der Attributgrammatiken wurde ursprünglich von Donald E. Knuth eingeführt. (de) An attribute grammar is a formal way to supplement a formal grammar with semantic information processing. Semantic information is stored in attributes associated with terminal and nonterminal symbols of the grammar. The values of attributes are result of attribute evaluation rules associated with productions of the grammar. Attributes allow to transfer information from anywhere in the abstract syntax tree to anywhere else, in a controlled and formal way. (en) Une grammaire attribuée est une manière formelle de définir des attributs pour les productions d'une grammaire, associant ces attributs à des valeurs. L'évaluation a lieu dans les nœuds de l'arbre syntaxique abstrait quand le langage est traité par un analyseur syntaxique ou un compilateur. On peut aussi utiliser des grammaires attribuées pour traduire l'arbre syntaxique directement en code pour une machine spécifique, ou dans un langage intermédiaire. (fr) 属性文法(ぞくせいぶんぽう、Attribute Grammar)とは、形式文法の生成に関する属性を定義する形式的手法。属性には値を関連付けられる。その言語を構文解析やコンパイラで処理する際に、属性の評価(属性から値を得ること)が抽象構文木上のノードで行われる。 属性は2種類に分類される。合成(sythesized)属性と継承(inherited)属性である。合成属性とは、属性評価の結果として生成されるものであり、継承属性の値を使用することもある。継承属性とは、親ノードから継承される属性である。 いくつかの手法では、合成属性は意味情報を構文解析木の上に渡すのに使われ、継承属性は逆に下に渡すのに使われる。例えば、言語変換ツールを作成する場合、属性文法は構文要素に意味(値)を設定するのに使われる。また、文法(構文規則だけでは明示的に示されない言語の規則)に従って意味論的検証を行うことも可能である。 (ja) Een attributengrammatica is een formele methode voor het specificeren van structurele eigenschappen van een programmeertaal door de productieregels van een contextvrije grammatica aan te vullen met regels die betrekking hebben op de (contextgevoelige) structuur van de taal. (nl) |
rdfs:label | سمات النحو (ar) Atributová gramatika (cs) Attributgrammatik (de) Attribute grammar (en) Grammatica ad attributi (it) Grammaire attribuée (fr) 属性文法 (ja) Attributengrammatica (nl) Gramática de atributos (pt) |
owl:sameAs | freebase:Attribute grammar yago-res:Attribute grammar http://d-nb.info/gnd/4003464-1 wikidata:Attribute grammar dbpedia-ar:Attribute grammar dbpedia-cs:Attribute grammar dbpedia-da:Attribute grammar dbpedia-de:Attribute grammar dbpedia-fa:Attribute grammar dbpedia-fi:Attribute grammar dbpedia-fr:Attribute grammar dbpedia-it:Attribute grammar dbpedia-ja:Attribute grammar dbpedia-nl:Attribute grammar dbpedia-pt:Attribute grammar https://global.dbpedia.org/id/4mzCU |
prov:wasDerivedFrom | wikipedia-en:Attribute_grammar?oldid=1068100633&ns=0 |
foaf:isPrimaryTopicOf | wikipedia-en:Attribute_grammar |
is dbo:wikiPageDisambiguates of | dbr:AG |
is dbo:wikiPageRedirects of | dbr:Attribute_grammars |
is dbo:wikiPageWikiLink of | dbr:Parsing dbr:Reinhard_Wilhelm dbr:DMS_Software_Reengineering_Toolkit dbr:Definite_clause_grammar dbr:Index_of_philosophy_articles_(A–C) dbr:L-attributed_grammar dbr:Compiler dbr:Context-free_grammar dbr:GrammaTech dbr:Thomas_W._Reps dbr:LR-attributed_grammar dbr:Compiler-compiler dbr:Syntax_(programming_languages) dbr:Tim_Teitelbaum dbr:S-attributed_grammar dbr:Adaptive_grammar dbr:ECLR-attributed_grammar dbr:Formal_grammar dbr:AG dbr:Haskell dbr:Affix_grammar dbr:Donald_Knuth dbr:Aspect-oriented_programming dbr:Semantic_analysis_(compilers) dbr:Semantics_(computer_science) dbr:Van_Wijngaarden_grammar dbr:Syntax-directed_translation dbr:Structure_editor dbr:Two-level_grammar dbr:Attribute_grammars |
is foaf:primaryTopic of | wikipedia-en:Attribute_grammar |