Multiple dispatch (original) (raw)

About DBpedia

Dispatch múltiple, en ciència de la computació, és una característica d'alguns llenguatges de programació en els que una funció o mètode pot ser cridat en temps d'execució en relació a una sèrie d'atributs o arguments. El dispatch múltiple és un multimètode o polimorfisme on la crida a la funció o mètode és servida dinàmicament depenent del tipus d'objecte.

Property Value
dbo:abstract Dispatch múltiple, en ciència de la computació, és una característica d'alguns llenguatges de programació en els que una funció o mètode pot ser cridat en temps d'execució en relació a una sèrie d'atributs o arguments. El dispatch múltiple és un multimètode o polimorfisme on la crida a la funció o mètode és servida dinàmicament depenent del tipus d'objecte. (ca) Als Multimethoden bezeichnet man Methoden einer objektorientierten Programmiersprache, deren Auswahl nicht nur anhand des Typs eines Objekts getroffen wird, sondern anhand der dynamischen Typen mehrerer Objekte. Diese Art der Methodenauswahl wird auch als multiple dispatch (‚mehrfache Verteilung‘) bezeichnet. Zu unterscheiden ist die mehrfache Verteilung von der in vielen prozeduralen Programmiersprachen möglichen Überladung, bei der Methoden polymorph bezüglich der statischen Typen ihrer Parameter sind. Während bei klassischen objektorientierten Sprachen wie Java ausschließlich der dynamische Typ des impliziten ersten Parameters this herangezogen wird, können in Sprachen mit multiple dispatch Methoden auch auf die dynamischen Typen aller ihrer Parameter spezialisiert werden. Die von vielen (insbesondere C-ähnlichen) kompilierten Sprachen angebotene Überladung entspricht einem multiple dispatch zur Übersetzungszeit. Interessanterweise bieten die meisten Skriptsprachen Multimethoden in Form von Überladung jedoch zu Gunsten dynamischer Typisierung nicht an. Allerdings schließt dynamische Typisierung Multimethoden nicht aus. Die erste und bekannteste objektorientierte Umgebung, die diese Fähigkeit hat, ist das Common Lisp Object System (CLOS), aber auch Sprachen wie Dylan, Slate, , Guile, Seed7, Julia oder der Java-Abkömmling Nice bieten Derartiges. In C++ ist es möglich, Multimethoden als Funktoren und Templates auf verschiedene Weisen zu implementieren. In der JVM Welt ist z. B. Groovy eine Java-Syntax-kompatible Sprache mit größerer Verbreitung, die (sowohl bei dynamischer als auch statischer Kompilierung) standardmäßig Multimethoden unterstützt. (de) Le dispatch multiple est une fonctionnalité de certains langages orientés objet ou fonctionnels dans lesquels une fonction ou une méthode peut être spécialisée pour plus d'un de ses paramètres formels. On l'appelle alors multiméthode. La spécialisation d'une multiméthode peut ainsi dépendre du type dynamique de plusieurs de ses paramètres objets, à la différence des langages de programmation orientés objet classiques, dans lesquels la spécialisation ne dépend que du premier paramètre implicite this. Elle se distingue de la surcharge de fonction présente dans de nombreux langages de programmation, dans lesquels le choix de la fonction à utiliser dépend du type statique de ses paramètres, ce qui correspond à un dispatch multiple effectué au moment de la compilation. Le premier environnement orienté objet à avoir eu cette fonctionnalité, et le plus connu, est le Common Lisp Object System, mais d'autres langages comme Dylan, Slate, Cecil, GNU Guile, Seed7, Julia et le descendant de Java Nice offrent des fonctionnalités similaires. En C++ il est possible d'implémenter des multiméthodes comme foncteurs et templates de plusieurs façons. (fr) Multiple dispatch or multimethods is a feature of some programming languages in which a function or method can be dynamically dispatched based on the run-time (dynamic) type or, in the more general case, some other attribute of more than one of its arguments. This is a generalization of single-dispatch polymorphism where a function or method call is dynamically dispatched based on the derived type of the object on which the method has been called. Multiple dispatch routes the dynamic dispatch to the implementing function or method using the combined characteristics of one or more arguments. (en) 多重ディスパッチ(英: Multiple dispatch)は、多重定義された関数やメソッド(マルチメソッド(英: Multimethods)などと呼ばれる)などについて、そこで呼び出されるべき1つの定義を動的に選んで実行する(動的ディスパッチする)際に、2個以上の複数の引数が関与してどれかひとつを選ぶこと(特殊化)がおこなわれるものである。 (ja) Мультиме́тод (англ. multimethod) или мно́жественная диспетчериза́ция (англ. multiple dispatch) — механизм в языках программирования, позволяющий выбрать одну из нескольких функций в зависимости от динамических типов или значений аргументов (например, перегрузка методов в некоторых языках программирования). Представляет собой расширение одиночной диспетчеризации (виртуальных функций), где выбор метода осуществляется динамически на основе фактического типа объекта, для которого этот метод был вызван. Множественная диспетчеризация обобщает динамическую диспетчеризацию для случаев с двумя или более объектами. В явном виде мультиметоды поддерживаются «объектной системой Common Lisp’а» (CLOS). (ru) Despacho múltiplo (ou multimétodos) é a característica de algumas linguagens orientadas a objeto em que uma função ou método pode ser lançado dinamicamente baseado no tipo de tempo de execução (dinâmico) de mais de um de seus argumentos. Isto é uma extensão do polimorfismo de despacho único onde uma chamada de método é despachada dinamicamente baseada no tipo derivado do objeto atual sobre o qual o método foi chamado. O despacho múltiplo generaliza o despacho dinâmico para trabalhar com uma combinação de dois ou mais objetos. (pt) 多分派或译多重派发(multiple dispatch)或多方法(multimethod),是某些编程语言的一个特性,其中的函数或者方法,可以在运行时间(动态的)基于它的实际参数的类型,或在更一般的情况下于此之外的其他特性,来动态分派。这是对单分派多态的推广, 那里的函数或方法调用,基于在其上调用方法的对象的派生类型,而动态分派。多分派使用一个或多个实际参数的组合特征,路由动态分派至实现函数或方法。 (zh) Мультиме́тод (англ. multimethod) або множи́нна диспетчериза́ція (англ. multiple dispatch) — механізм, який дозволяє вибрати одну з декількох функцій в залежності від динамічних типів або значень аргументів. Є розширенням одиночної диспетчеризації (віртуальних функцій), де вибір методу здійснюється динамічно на основі фактичного типу об'єкта. Множинна диспетчеризація узагальнює динамічну диспетчеризацію для випадків з двома або більшою кількістю об'єктів. В явному вигляді мультиметоди підтримуються «об'єктною системою типів Common Lisp’а» (CLOS). (uk)
dbo:wikiPageExternalLink http://multijava.sourceforge.net/ https://multiple-dispatch.readthedocs.org/en/latest/ https://web.archive.org/web/20050309230813/http:/gnosis.cx/download/gnosis/magic/multimethods.py https://web.archive.org/web/20050409082546/http:/peak.telecommunity.com/ http://www.stroustrup.com/multimethods.pdf https://docs.racket-lang.org/multimethod/ https://docs.racket-lang.org/multimethod/index.html http://www.eclipse.org/xtend https://rubygems.org/gems/multi/ https://rubygems.org/gems/multimethod https://rubygems.org/gems/vlx-multi/ http://community.schemewiki.org/%3Ftiny-clos http://docs.factorcode.org/content/vocab-multi-methods.html http://sourceforge.net/projects/pymultimethods/ https://github.com/CObjectSystem/COS https://github.com/Hectarea1996/omm https://github.com/IgorNikitin/multimethods https://github.com/jll63/methods.d https://github.com/jll63/yomm2 https://code.google.com/p/multimethod-sharp/ http://www.codeplex.com/multimethods https://metacpan.org/module/Class::Multimethods https://pypi.python.org/pypi/PEAK-Rules https://www.npmjs.com/package/@arrows/multimethod
dbo:wikiPageID 191413 (xsd:integer)
dbo:wikiPageLength 45616 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID 1107471187 (xsd:integer)
dbo:wikiPageWikiLink dbr:Python_(programming_language) dbr:Ruby_(programming_language) dbr:Scheme_(programming_language) dbr:Method_(computer_programming) dbr:Bjarne_Stroustrup dbr:Julia_(programming_language) dbr:Perl dbr:Double_dispatch dbr:Dynamic_dispatch dbr:Library_(computing) dbr:.NET_Framework dbr:Common_Lisp dbr:Run_time_(program_lifecycle_phase) dbr:Generic_function dbr:Python_syntax_and_semantics dbr:Clojure dbr:Elixir_(programming_language) dbr:Function_overloading dbr:Branch_table dbr:Apache_Groovy dbr:Smalltalk dbr:Steel_Bank_Common_Lisp dbr:Subroutine dbc:Articles_with_example_Julia_code dbr:Common_Lisp_Object_System dbr:Compile_time dbr:Function_pointer dbr:Parameter_(computer_programming) dbr:McCLIM dbr:Standard_library dbr:C++ dbr:CMU_Common_Lisp dbr:C_(programming_language) dbr:C_Sharp_(programming_language) dbc:Polymorphism_(computer_science) dbr:Cecil_(programming_language) dbr:TypeScript dbr:Late_binding dbr:D_(programming_language) dbr:Data_type dbr:Dylan_(programming_language) dbr:Factor_(programming_language) dbr:Fortress_(programming_language) dbr:Nim_(programming_language) dbr:Source_code dbr:Groovy_(programming_language) dbr:Guido_van_Rossum dbr:Java_(programming_language) dbr:Covariance_and_contravariance_(computer_science) dbc:Articles_with_example_C_code dbc:Articles_with_example_C++_code dbc:Articles_with_example_Java_code dbc:Articles_with_example_Python_(programming_language)_code dbc:Method_(computer_programming) dbc:Articles_with_example_Lisp_(programming_language)_code dbr:Lasso_(programming_language) dbr:TADS dbr:Java_virtual_machine dbc:Articles_with_example_D_code dbr:C_Sharp_4.0 dbr:Operator_(computer_programming) dbr:R_(programming_language) dbr:Racket_(programming_language) dbr:Raku_(programming_language) dbr:Seed7 dbr:Wolfram_Language dbr:Visitor_pattern dbr:Programming_language dbr:Predicate_dispatch dbr:Visual_Basic_.Net dbr:Polymorphism_in_object-oriented_programming dbr:JavaScript_(programming_language) dbr:Single-dispatch dbr:.Net_DLR
dbp:wikiPageUsesTemplate dbt:As_of dbt:Citation_needed dbt:Cite_conference dbt:Cite_web dbt:Reflist dbt:Short_description dbt:Polymorphism
dct:subject dbc:Articles_with_example_Julia_code dbc:Polymorphism_(computer_science) dbc:Articles_with_example_C_code dbc:Articles_with_example_C++_code dbc:Articles_with_example_Java_code dbc:Articles_with_example_Python_(programming_language)_code dbc:Method_(computer_programming) dbc:Articles_with_example_Lisp_(programming_language)_code dbc:Articles_with_example_D_code
gold:hypernym dbr:Feature
rdf:type dbo:Work
rdfs:comment Dispatch múltiple, en ciència de la computació, és una característica d'alguns llenguatges de programació en els que una funció o mètode pot ser cridat en temps d'execució en relació a una sèrie d'atributs o arguments. El dispatch múltiple és un multimètode o polimorfisme on la crida a la funció o mètode és servida dinàmicament depenent del tipus d'objecte. (ca) Multiple dispatch or multimethods is a feature of some programming languages in which a function or method can be dynamically dispatched based on the run-time (dynamic) type or, in the more general case, some other attribute of more than one of its arguments. This is a generalization of single-dispatch polymorphism where a function or method call is dynamically dispatched based on the derived type of the object on which the method has been called. Multiple dispatch routes the dynamic dispatch to the implementing function or method using the combined characteristics of one or more arguments. (en) 多重ディスパッチ(英: Multiple dispatch)は、多重定義された関数やメソッド(マルチメソッド(英: Multimethods)などと呼ばれる)などについて、そこで呼び出されるべき1つの定義を動的に選んで実行する(動的ディスパッチする)際に、2個以上の複数の引数が関与してどれかひとつを選ぶこと(特殊化)がおこなわれるものである。 (ja) Despacho múltiplo (ou multimétodos) é a característica de algumas linguagens orientadas a objeto em que uma função ou método pode ser lançado dinamicamente baseado no tipo de tempo de execução (dinâmico) de mais de um de seus argumentos. Isto é uma extensão do polimorfismo de despacho único onde uma chamada de método é despachada dinamicamente baseada no tipo derivado do objeto atual sobre o qual o método foi chamado. O despacho múltiplo generaliza o despacho dinâmico para trabalhar com uma combinação de dois ou mais objetos. (pt) 多分派或译多重派发(multiple dispatch)或多方法(multimethod),是某些编程语言的一个特性,其中的函数或者方法,可以在运行时间(动态的)基于它的实际参数的类型,或在更一般的情况下于此之外的其他特性,来动态分派。这是对单分派多态的推广, 那里的函数或方法调用,基于在其上调用方法的对象的派生类型,而动态分派。多分派使用一个或多个实际参数的组合特征,路由动态分派至实现函数或方法。 (zh) Мультиме́тод (англ. multimethod) або множи́нна диспетчериза́ція (англ. multiple dispatch) — механізм, який дозволяє вибрати одну з декількох функцій в залежності від динамічних типів або значень аргументів. Є розширенням одиночної диспетчеризації (віртуальних функцій), де вибір методу здійснюється динамічно на основі фактичного типу об'єкта. Множинна диспетчеризація узагальнює динамічну диспетчеризацію для випадків з двома або більшою кількістю об'єктів. В явному вигляді мультиметоди підтримуються «об'єктною системою типів Common Lisp’а» (CLOS). (uk) Als Multimethoden bezeichnet man Methoden einer objektorientierten Programmiersprache, deren Auswahl nicht nur anhand des Typs eines Objekts getroffen wird, sondern anhand der dynamischen Typen mehrerer Objekte. Diese Art der Methodenauswahl wird auch als multiple dispatch (‚mehrfache Verteilung‘) bezeichnet. Zu unterscheiden ist die mehrfache Verteilung von der in vielen prozeduralen Programmiersprachen möglichen Überladung, bei der Methoden polymorph bezüglich der statischen Typen ihrer Parameter sind. (de) Le dispatch multiple est une fonctionnalité de certains langages orientés objet ou fonctionnels dans lesquels une fonction ou une méthode peut être spécialisée pour plus d'un de ses paramètres formels. On l'appelle alors multiméthode. La spécialisation d'une multiméthode peut ainsi dépendre du type dynamique de plusieurs de ses paramètres objets, à la différence des langages de programmation orientés objet classiques, dans lesquels la spécialisation ne dépend que du premier paramètre implicite this. (fr) Мультиме́тод (англ. multimethod) или мно́жественная диспетчериза́ция (англ. multiple dispatch) — механизм в языках программирования, позволяющий выбрать одну из нескольких функций в зависимости от динамических типов или значений аргументов (например, перегрузка методов в некоторых языках программирования). Представляет собой расширение одиночной диспетчеризации (виртуальных функций), где выбор метода осуществляется динамически на основе фактического типа объекта, для которого этот метод был вызван. Множественная диспетчеризация обобщает динамическую диспетчеризацию для случаев с двумя или более объектами. (ru)
rdfs:label Dispatch múltiple (ca) Multimethode (de) Dispatch multiple (fr) Multiple dispatch (en) 多重ディスパッチ (ja) Despacho múltiplo (pt) Мультиметод (ru) 多分派 (zh) Мультиметод (uk)
owl:sameAs freebase:Multiple dispatch yago-res:Multiple dispatch wikidata:Multiple dispatch dbpedia-ca:Multiple dispatch dbpedia-de:Multiple dispatch dbpedia-fr:Multiple dispatch dbpedia-hu:Multiple dispatch dbpedia-ja:Multiple dispatch dbpedia-pt:Multiple dispatch dbpedia-ru:Multiple dispatch dbpedia-uk:Multiple dispatch dbpedia-zh:Multiple dispatch https://global.dbpedia.org/id/htAk
prov:wasDerivedFrom wikipedia-en:Multiple_dispatch?oldid=1107471187&ns=0
foaf:homepage http://docs.racket-lang.org
foaf:isPrimaryTopicOf wikipedia-en:Multiple_dispatch
is dbo:wikiPageRedirects of dbr:Multi-methods dbr:Multidispatch dbr:Multimethod dbr:Multimethods dbr:Multiple_despatch
is dbo:wikiPageWikiLink of dbr:Metaobject dbr:Julia_(programming_language) dbr:Double_dispatch dbr:Index_of_object-oriented_programming_articles dbr:List_of_programming_languages_by_type dbr:Common_Lisp dbr:STklos dbr:Generic_function dbr:Object-oriented_programming dbr:Clojure dbr:Elixir_(programming_language) dbr:Glossary_of_artificial_intelligence dbr:Letter_case dbr:Lisp_(programming_language) dbr:Smalltalk dbr:Common_Lisp_Object_System dbr:Comparison_of_multi-paradigm_programming_languages dbr:Comparison_of_programming_languages dbr:Polymorphism_(computer_science) dbr:Cecil_(programming_language) dbr:Type_signature dbr:Type_system dbr:Data,_context_and_interaction dbr:Dylan_(programming_language) dbr:Fragile_base_class dbr:Nim_(programming_language) dbr:List_of_Lisp-family_programming_languages dbr:Covariance_and_contravariance_(computer_science) dbr:Lasso_(programming_language) dbr:Modern_C++_Design dbr:Open_energy_system_models dbr:R_(programming_language) dbr:Seed7 dbr:MMD dbr:S_(programming_language) dbr:Virtual_method_table dbr:Visitor_pattern dbr:Expression_problem dbr:Multiway_branch dbr:Predicate_dispatch dbr:Multi-methods dbr:Multidispatch dbr:Multimethod dbr:Multimethods dbr:Multiple_despatch
is dbp:paradigm of dbr:Julia_(programming_language)
is foaf:primaryTopic of wikipedia-en:Multiple_dispatch