About: Memoization

An Entity of Type: WikicatProgrammingLanguageConcepts, from Named Graph: http://dbpedia.org, within Data Space: dbpedia.org

In computing, memoization or memoisation is an optimization technique used primarily to speed up computer programs by storing the results of expensive function calls and returning the cached result when the same inputs occur again. Memoization has also been used in other contexts (and for purposes other than speed gains), such as in simple mutually recursive descent parsing. Although related to caching, memoization refers to a specific case of this optimization, distinguishing it from forms of caching such as buffering or page replacement. In the context of some logic programming languages, memoization is also known as tabling.

Property Value
dbo:abstract
  • En informàtica, la memoització és una tècnica d'optimització que s'utilitza principalment per accelerar programes informàtics mitjançant l'emmagatzematge dels resultats de crides de funcions costoses en la memòria cau i retornant el resultat guardat quan les entrades es repeteixen. La memoització també ha estat utilitzada en altres contextos (i per altres usos més enllà de guanyar velocitat), com en casos senzills d'anàlisi de descendent. Tot i estar relacionat amb la memòria cau, la memoització és tan sols un cas específic d'aquesta optimització, i l'hem de distingir d'altres mètodes de caching com el buffering o . En el context d'alguns llenguatges de , la memoització també es coneix com a tabling. (ca)
  • في الحوسبة، الاستظهار (بالإنجليزية: memoization)‏ هي تقنية تحسين تستخدم في المقام الأول لتسريع برامج الحاسوب عن طريق تخزين نتائج استدعاءات الدوال باهظة الثمن وإرجاع النتيجة المخزنة مؤقتًا عند حدوث نفس المدخلات مرة أخرى. تم استخدام استظهار أيضًا في سياقات أخرى (ولأغراض أخرى غير مكاسب السرعة)، مثل تحليل النسب العودية المتبادل البسيط. على الرغم من ارتباطه بالتخزين المؤقت، يشير الاستظهارإلى حالة معينة من هذا التحسين، ويميزه عن أشكال التخزين المؤقت مثل التخزين الانتقالي أو استبدال الصفحة. (ar)
  • Memoisation oder Memoisierung ist eine Technik, um Computerprogramme zu beschleunigen, indem Rückgabewerte von Funktionen zwischengespeichert anstatt neu berechnet werden. Memoisation ähnelt Dynamischer Programmierung, bewahrt jedoch im Gegensatz zu dieser die grundlegende Vorgehensweise des zu beschleunigenden Verfahrens. Funktionen können nur memoisiert werden, wenn sie referenziell transparent sind, d. h., sie geben bei gleichen Eingaben immer dieselben Ausgaben zurück. Operationen, die nicht referenziell transparent sind, aber bei denen Abweichungen in der Ausgabe relativ selten zu erwarten sind, können mit anderen Methoden (wie Cache) zwischengespeichert werden. Generell haben memoisierte Ausgaben kein Ablaufdatum und müssen nicht neu berechnet werden, wie das bei Caches im Allgemeinen der Fall ist. In imperativen Programmiersprachen wird Memoisation üblicherweise in Form eines assoziativen Arrays implementiert. In einer funktionalen Programmiersprache ist es möglich, eine Funktion höherer Ordnung memoize für jede referenziell transparente Funktion zu konstruieren. In Sprachen ohne die Möglichkeit einer Funktion höherer Ordnung muss die Memoisation separat in jede Funktion implementiert werden, die davon Gebrauch macht. (de)
  • En Informática, el término memoización (del inglés memoization) es una técnica de optimización que se usaprincipalmente para acelerar los tiempos de cálculo, almacenando los resultados de la llamada a una subrutina en una memoria intermedia o búfer y devolviendo esos mismos valores cuando se llame de nuevo a la subrutina o función con los mismos parámetros de entrada. La memoización también se puede usar en otras situaciones, y con propósitos diferentes del de reducir tiempos de computación, como por ejemplo en la de un analizador sintáctico o parser descendente.​ Aunque está fuertemente vinculada con el concepto de caché, la memoización se refiere a un uso específico de esta, distinguiéndose de otros casos de uso como un buffer o un algoritmo de reemplazo de páginas. En el contexto de algunos lenguajes de programación lógica, como por ejemplo Prolog, la técnica de memoización suele ser denominada tabulación o tabling.​ (es)
  • In computing, memoization or memoisation is an optimization technique used primarily to speed up computer programs by storing the results of expensive function calls and returning the cached result when the same inputs occur again. Memoization has also been used in other contexts (and for purposes other than speed gains), such as in simple mutually recursive descent parsing. Although related to caching, memoization refers to a specific case of this optimization, distinguishing it from forms of caching such as buffering or page replacement. In the context of some logic programming languages, memoization is also known as tabling. (en)
  • En informatique, la mémoïsation (ou mémoïzation[réf. nécessaire]) est la mise en cache des valeurs de retour d'une fonction selon ses valeurs d'entrée. Le but de cette technique d'optimisation de code est de diminuer le temps d'exécution d'un programme informatique en mémorisant les valeurs retournées par une fonction. Bien que liée à la notion de cache[réf. nécessaire], la mémoïsation désigne une technique bien distincte de celles mises en œuvre dans les algorithmes de gestion de la mémoire cache. (fr)
  • メモ化(英: memoization)とは、プログラムの高速化のための最適化技法の一種であり、サブルーチン呼び出しの結果を後で再利用するために保持し、そのサブルーチン(関数)の呼び出し毎の再計算を防ぐ手法である。メモ化は構文解析などでも使われる(必ずしも高速化のためだけとは限らない)。キャッシュはより広範な用語であり、メモ化はキャッシュの限定的な形態を指す用語である。 (ja)
  • 메모이제이션(memoization)은 컴퓨터 프로그램이 동일한 계산을 반복해야 할 때, 이전에 계산한 값을 메모리에 저장함으로써 동일한 계산의 반복 수행을 제거하여 프로그램 실행 속도를 빠르게 하는 기술이다. 동적 계획법의 핵심이 되는 기술이다. (ko)
  • Memoization is een methode in het programmeren die gebruikt wordt om een functie te optimaliseren. Memoization is een vorm van caching en is verwant aan . Bij memoization slaat een functie de waarde die hij voor de gegeven argumenten berekend heeft op. Als de functie opnieuw wordt aangeroepen met dezelfde argumenten hoeft het resultaat niet opnieuw berekend te worden, maar kan direct geretourneerd worden. (nl)
  • La memoizzazione è una tecnica di programmazione che consiste nel salvare in memoria i valori restituiti da una funzione in modo da averli a disposizione per un riutilizzo successivo senza doverli ricalcolare. Memoizzazione, che significa letteralmente "mettere in memoria" è una tecnica caratteristica della programmazione dinamica. Spesso questo termine viene confuso con "memorizzazione" che, sebbene descriva lo stesso procedimento, ha un significato più ampio. Una funzione può essere "memoizzata" soltanto se soddisfa la trasparenza referenziale, cioè se non ha effetti collaterali e restituisce sempre lo stesso valore quando riceve in input gli stessi parametri. Le operazioni che non soddisfano questa condizione, ma i cui valori restituiti hanno una piccola probabilità di cambiare, possono ancora essere duplicate ("cached", dal francese caché) usando tecniche più complesse. In generale, i risultati memoizzati non perdono di validità nel tempo, mentre, al contrario, quelli duplicati la perdono. Nei linguaggi di programmazione funzionale è possibile costruire una funzione di livello superiore memoize che, a sua volta, creerà automaticamente funzioni memoizzate per ogni funzione dotata di trasparenza referenziale. Al contrario, invece, nei linguaggi privi di funzioni di ordine superiore, la memoizzazione deve essere implementata separatamente per ciascuna funzione che ne deve beneficiare. La tecnica è anche spesso utilizzata nell'approccio top-down in programmazione dinamica. (it)
  • Memoisation, memoisering, är en teknik för att optimera datorprogram som innebär att resultatet av uträkningar som sker medan programmet körs lagras i en tabell. Om en beräkning som redan har utförts efterfrågas, kan tabellen läsas av istället för upprepa hela den potentiellt tidskrävande uträkningen. Tekniken kan jämföras med cachning av minne. Speciellt handlar memoisation om att associera funktionsargument med för enskilda funktioner, oftast genom att spara associationerna i en hashtabell. Tekniken är bara tillämpbar på funktioner utan sidoeffekter, och används därför oftast inom funktionell programmering där sådana funktioner är vanliga eller kan markeras explicit. I programspråk med stöd för kan man skriva en funktion som omvandlar godtyckliga funktioner till memoiserade funktioner. I övriga språk måste memoisation implementeras separat för varje funktion. Tekniken är också allmänt känd inom algoritmteorin som dynamisk programmering, vilket är ett effektivt lösningssätt för vissa typer av optimeringsproblem. Delresultat lagras och återanvänds istället för att beräknas på nytt varje gång de behövs. När tekniken används praktisk leder den till snabbare program men kräver istället mer datorminne. En betydande andel viktiga optimeringsproblem går i praktiken inte att lösa utan dynamisk programmering. (sv)
  • Мемоизация (Кеш) (англ. memoization от англ. memory и англ. optimization) — пример использования кеша при разработке программного обеспечения, в программировании сохранение результатов выполнения функций для предотвращения повторных вычислений. Это один из способов оптимизации, применяемый для увеличения скорости выполнения компьютерных программ. Перед вызовом функции проверяется, вызывалась ли функция ранее: * если не вызывалась, то функция вызывается, и результат её выполнения сохраняется; * если вызывалась, то используется сохранённый результат. Мемоизация может использоваться не только для увеличения скорости работы программы. Например, она используется при взаимно-рекурсивном нисходящем синтаксическом разборе в обобщённом алгоритме нисходящего синтаксического анализа. Несмотря на связь с кешированием, мемоизация является особым видом оптимизации, отличающимся от таких способов кеширования, как буферизация и подмена страниц. В рамках языков логического программирования мемоизация известна под названием «табулирования». (ru)
  • 记忆化(英語:memoization)是一种提高计算机程序执行速度的优化技术。通过储存大计算量函数的返回值,当这个结果再次被需要时将其从缓存提取,而不用再次计算来节省计算时间。 记忆化是一种典型的在計算時間與電腦記憶體空間之中取得平衡的方案。 (zh)
  • Мемоізація — це метод оптимізації, який в основному використовується для прискорення комп'ютерних програм шляхом зберігання результатів дорогих викликів функцій та повернення кешованого результату, коли виклики на однакових вхідних даних відбуваються знову. Мемоізація також використовується в інших контекстах (та для цілей, відмінних від прискорення швидкості), наприклад, у простому взаємному рекурсивному спуску. Хоча мемоізація пов'язана з кешуванням, вона відноситься до конкретного випадку цієї оптимізації, яка відрізняє її від інших форм кешування, таких як буферизація або заміщення сторінок. У контексті деяких мов логічного програмування мемоізація також відома як табулювання; див. також таблицю пошуку. (uk)
dbo:wikiPageExternalLink
dbo:wikiPageID
  • 723483 (xsd:integer)
dbo:wikiPageLength
  • 30926 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID
  • 1120393297 (xsd:integer)
dbo:wikiPageWikiLink
dbp:bot
  • InternetArchiveBot (en)
dbp:date
  • March 2020 (en)
dbp:fixAttempted
  • yes (en)
dbp:wikiPageUsesTemplate
dcterms:subject
rdf:type
rdfs:comment
  • En informàtica, la memoització és una tècnica d'optimització que s'utilitza principalment per accelerar programes informàtics mitjançant l'emmagatzematge dels resultats de crides de funcions costoses en la memòria cau i retornant el resultat guardat quan les entrades es repeteixen. La memoització també ha estat utilitzada en altres contextos (i per altres usos més enllà de guanyar velocitat), com en casos senzills d'anàlisi de descendent. Tot i estar relacionat amb la memòria cau, la memoització és tan sols un cas específic d'aquesta optimització, i l'hem de distingir d'altres mètodes de caching com el buffering o . En el context d'alguns llenguatges de , la memoització també es coneix com a tabling. (ca)
  • في الحوسبة، الاستظهار (بالإنجليزية: memoization)‏ هي تقنية تحسين تستخدم في المقام الأول لتسريع برامج الحاسوب عن طريق تخزين نتائج استدعاءات الدوال باهظة الثمن وإرجاع النتيجة المخزنة مؤقتًا عند حدوث نفس المدخلات مرة أخرى. تم استخدام استظهار أيضًا في سياقات أخرى (ولأغراض أخرى غير مكاسب السرعة)، مثل تحليل النسب العودية المتبادل البسيط. على الرغم من ارتباطه بالتخزين المؤقت، يشير الاستظهارإلى حالة معينة من هذا التحسين، ويميزه عن أشكال التخزين المؤقت مثل التخزين الانتقالي أو استبدال الصفحة. (ar)
  • In computing, memoization or memoisation is an optimization technique used primarily to speed up computer programs by storing the results of expensive function calls and returning the cached result when the same inputs occur again. Memoization has also been used in other contexts (and for purposes other than speed gains), such as in simple mutually recursive descent parsing. Although related to caching, memoization refers to a specific case of this optimization, distinguishing it from forms of caching such as buffering or page replacement. In the context of some logic programming languages, memoization is also known as tabling. (en)
  • En informatique, la mémoïsation (ou mémoïzation[réf. nécessaire]) est la mise en cache des valeurs de retour d'une fonction selon ses valeurs d'entrée. Le but de cette technique d'optimisation de code est de diminuer le temps d'exécution d'un programme informatique en mémorisant les valeurs retournées par une fonction. Bien que liée à la notion de cache[réf. nécessaire], la mémoïsation désigne une technique bien distincte de celles mises en œuvre dans les algorithmes de gestion de la mémoire cache. (fr)
  • メモ化(英: memoization)とは、プログラムの高速化のための最適化技法の一種であり、サブルーチン呼び出しの結果を後で再利用するために保持し、そのサブルーチン(関数)の呼び出し毎の再計算を防ぐ手法である。メモ化は構文解析などでも使われる(必ずしも高速化のためだけとは限らない)。キャッシュはより広範な用語であり、メモ化はキャッシュの限定的な形態を指す用語である。 (ja)
  • 메모이제이션(memoization)은 컴퓨터 프로그램이 동일한 계산을 반복해야 할 때, 이전에 계산한 값을 메모리에 저장함으로써 동일한 계산의 반복 수행을 제거하여 프로그램 실행 속도를 빠르게 하는 기술이다. 동적 계획법의 핵심이 되는 기술이다. (ko)
  • Memoization is een methode in het programmeren die gebruikt wordt om een functie te optimaliseren. Memoization is een vorm van caching en is verwant aan . Bij memoization slaat een functie de waarde die hij voor de gegeven argumenten berekend heeft op. Als de functie opnieuw wordt aangeroepen met dezelfde argumenten hoeft het resultaat niet opnieuw berekend te worden, maar kan direct geretourneerd worden. (nl)
  • 记忆化(英語:memoization)是一种提高计算机程序执行速度的优化技术。通过储存大计算量函数的返回值,当这个结果再次被需要时将其从缓存提取,而不用再次计算来节省计算时间。 记忆化是一种典型的在計算時間與電腦記憶體空間之中取得平衡的方案。 (zh)
  • Мемоізація — це метод оптимізації, який в основному використовується для прискорення комп'ютерних програм шляхом зберігання результатів дорогих викликів функцій та повернення кешованого результату, коли виклики на однакових вхідних даних відбуваються знову. Мемоізація також використовується в інших контекстах (та для цілей, відмінних від прискорення швидкості), наприклад, у простому взаємному рекурсивному спуску. Хоча мемоізація пов'язана з кешуванням, вона відноситься до конкретного випадку цієї оптимізації, яка відрізняє її від інших форм кешування, таких як буферизація або заміщення сторінок. У контексті деяких мов логічного програмування мемоізація також відома як табулювання; див. також таблицю пошуку. (uk)
  • Memoisation oder Memoisierung ist eine Technik, um Computerprogramme zu beschleunigen, indem Rückgabewerte von Funktionen zwischengespeichert anstatt neu berechnet werden. Memoisation ähnelt Dynamischer Programmierung, bewahrt jedoch im Gegensatz zu dieser die grundlegende Vorgehensweise des zu beschleunigenden Verfahrens. (de)
  • En Informática, el término memoización (del inglés memoization) es una técnica de optimización que se usaprincipalmente para acelerar los tiempos de cálculo, almacenando los resultados de la llamada a una subrutina en una memoria intermedia o búfer y devolviendo esos mismos valores cuando se llame de nuevo a la subrutina o función con los mismos parámetros de entrada. La memoización también se puede usar en otras situaciones, y con propósitos diferentes del de reducir tiempos de computación, como por ejemplo en la de un analizador sintáctico o parser descendente.​ (es)
  • La memoizzazione è una tecnica di programmazione che consiste nel salvare in memoria i valori restituiti da una funzione in modo da averli a disposizione per un riutilizzo successivo senza doverli ricalcolare. Memoizzazione, che significa letteralmente "mettere in memoria" è una tecnica caratteristica della programmazione dinamica. Spesso questo termine viene confuso con "memorizzazione" che, sebbene descriva lo stesso procedimento, ha un significato più ampio. La tecnica è anche spesso utilizzata nell'approccio top-down in programmazione dinamica. (it)
  • Memoisation, memoisering, är en teknik för att optimera datorprogram som innebär att resultatet av uträkningar som sker medan programmet körs lagras i en tabell. Om en beräkning som redan har utförts efterfrågas, kan tabellen läsas av istället för upprepa hela den potentiellt tidskrävande uträkningen. Tekniken kan jämföras med cachning av minne. I programspråk med stöd för kan man skriva en funktion som omvandlar godtyckliga funktioner till memoiserade funktioner. I övriga språk måste memoisation implementeras separat för varje funktion. (sv)
  • Мемоизация (Кеш) (англ. memoization от англ. memory и англ. optimization) — пример использования кеша при разработке программного обеспечения, в программировании сохранение результатов выполнения функций для предотвращения повторных вычислений. Это один из способов оптимизации, применяемый для увеличения скорости выполнения компьютерных программ. Перед вызовом функции проверяется, вызывалась ли функция ранее: * если не вызывалась, то функция вызывается, и результат её выполнения сохраняется; * если вызывалась, то используется сохранённый результат. (ru)
rdfs:label
  • استظهار (ar)
  • Memoització (ca)
  • Memoisation (de)
  • Memoización (es)
  • Mémoïsation (fr)
  • Memoizzazione (it)
  • Memoization (en)
  • 메모이제이션 (ko)
  • メモ化 (ja)
  • Memoization (nl)
  • Memoisation (sv)
  • Мемоизация (ru)
  • Мемоізація (uk)
  • 记忆化 (zh)
owl:differentFrom
owl:sameAs
prov:wasDerivedFrom
foaf:isPrimaryTopicOf
is dbo:wikiPageDisambiguates of
is dbo:wikiPageRedirects of
is dbo:wikiPageWikiLink of
is rdfs:seeAlso of
is owl:differentFrom of
is foaf:primaryTopic of
Powered by OpenLink Virtuoso    This material is Open Knowledge     W3C Semantic Web Technology     This material is Open Knowledge    Valid XHTML + RDFa
This content was extracted from Wikipedia and is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License