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

Resource acquisition is initialization (RAII) is a programming idiom used in several object-oriented, statically-typed programming languages to describe a particular language behavior. In RAII, holding a resource is a class invariant, and is tied to object lifetime. Resource allocation (or acquisition) is done during object creation (specifically initialization), by the constructor, while resource deallocation (release) is done during object destruction (specifically finalization), by the destructor. In other words, resource acquisition must succeed for initialization to succeed. Thus the resource is guaranteed to be held between when initialization finishes and finalization starts (holding the resources is a class invariant), and to be held only when the object is alive. Thus if there are

Property Value
dbo:abstract
  • اكتساب الموارد تهيئة Resource acquisition is initialization (RAII) هو مصطلح برمجي يستخدم في عدة لغات موجهة للكائنات لوصف سلوك لغوي معين. في RAII ، يعد الاحتفاظ بالمورد صنف غير متغيّر، ويرتبط بعمر الكائن: يتم تخصيص الموارد (أو اكتساب) أثناء إنشاء الكائن (على وجه التحديد التهيئة)، من قبل المنشئ، بينما يتم إلغاء تخصيص الموارد (التحرير/إصدار) أثناء تدمير الكائن (على وجه التحديد)، من قبل المدمرة. وبعبارة أخرى، يجب أن ينجح اكتساب الموارد حتى تنجح التهيئة. وبالتالي يتم ضمان الاحتفاظ بالمورد بين وقت انتهاء التهيئة وبدء الانتهاء (الاحتفاظ بالموارد هو صنف لا متغيّر)، ويتم الاحتفاظ به فقط عندما يكون الكائن على قيد الحياة. وبالتالي إذا لم يكن هناك أي تسرب للكائن، فلن يكون هناك تسرب للموارد. يرتبط اكتساب الموارد تهيئة بشكل بارز بـ سي ++ حيث نشأ، ولكن أيضًا دي وأدا وفالا ورست. تم تطوير هذه التقنية لإدارة الموارد الآمنة للاستثناءات في سي ++ خلال 1984-1989، بواسطةبيارن ستروستروب وأندرو كونيغ (كاتب) في المقام الأول، والمصطلح نفسه صاغه ستروستروب (Stroustrup). اكتساب الموارد تهيئة RAII تلفظ عموما باعتبارها initialism علامة اختصار، تلفظ في بعض الأحيان ب «R، A، I المزدوج». الأسماء الأخرى لهذا المصطلح تشمل اكتساب المُنشئ ، إصدارات المدمرة (CADRe) وأحد أنماط الاستخدام المعينة يسمى إدارة الموارد المستندة إلى النطاق (SBRM). هذا المصطلح الأخير للحالة الخاصة للمتغيرات التلقائية. يربط RAII الموارد بعمر الكائن ، والذي قد لا يتزامن مع الدخول والخروج من النطاق. (المتغيرات التي تم تخصيصها على المتجر المجاني بشكل خاص لها عمر لا علاقة له بأي مجال معين.) ومع ذلك، فإن استخدام RAII للمتغيرات التلقائية (SBRM) هو حالة الاستخدام الأكثر شيوعًا. (ar)
  • Ressourcenbelegung ist Initialisierung, meist abgekürzt durch RAII, für englisch resource acquisition is initialization, bezeichnet eine in bestimmten Programmiersprachen (wie z. B. C++) verbreitete Programmiertechnik zur Verwaltung von Betriebsmitteln (auch Ressourcen genannt). Dabei wird die Belegung von Betriebsmitteln an den Konstruktoraufruf einer Variablen eines benutzerdefinierten Typs und die Freigabe der Betriebsmittel an dessen Destruktoraufruf gebunden. Die automatische Freigabe wird beispielsweise durch das Verlassen des Gültigkeitsbereichs ausgelöst (am Blockende, bei Ausnahmeauslösung, durch Rückgabe an den Aufrufer usw.), der implizite Destruktoraufruf der Variablen sorgt dann für die Wiederfreigabe der Ressource. (de)
  • RAII (del inglés resource acquisition is initialization, que podría traducirse como «adquirir recursos es inicializar») es un popular patrón de diseño en varios lenguajes de programación orientados a objetos como C++ y Ada. La técnica fue inventada por Bjarne Stroustrup​ para reservar y liberar recursos en C++. En este lenguaje, después de que una excepción es lanzada, el único código fuente que con seguridad es ejecutado es el de los destructores de objetos que residen en la pila. Por lo tanto los recursos necesitan ser gestionados con objetos adecuados. Los recursos son adquiridos durante la inicialización, cuando no hay posibilidad de que sean usados antes de estar disponibles, y liberados cuando se destruyen los mismos, algo que es garantizado que suceda incluso cuando se dan errores. La técnica RAII es vital al escribir código C++ seguro frente a excepciones: para liberar recursos antes de permitir a las excepciones que se propaguen (para evitar fugas de memoria) el desarrollador puede escribir destructores apropiados una sola vez, ahorrándose escribir código de «limpieza» duplicado y disperso por el código fuente entre bloques de manejo de excepciones que pueden ser ejecutados o no. A diferencia de la recolección de basura, RAII tiene las ventajas de saber cuándo los objetos existen y cuándo no. (es)
  • Resource acquisition is initialization (RAII) is a programming idiom used in several object-oriented, statically-typed programming languages to describe a particular language behavior. In RAII, holding a resource is a class invariant, and is tied to object lifetime. Resource allocation (or acquisition) is done during object creation (specifically initialization), by the constructor, while resource deallocation (release) is done during object destruction (specifically finalization), by the destructor. In other words, resource acquisition must succeed for initialization to succeed. Thus the resource is guaranteed to be held between when initialization finishes and finalization starts (holding the resources is a class invariant), and to be held only when the object is alive. Thus if there are no object leaks, there are no resource leaks. RAII is associated most prominently with C++ where it originated, but also D, Ada, Vala, and Rust. The technique was developed for exception-safe resource management in C++ during 1984–89, primarily by Bjarne Stroustrup and Andrew Koenig, and the term itself was coined by Stroustrup. RAII is generally pronounced as an initialism, sometimes pronounced as "R, A, double I". Other names for this idiom include Constructor Acquires, Destructor Releases (CADRe) and one particular style of use is called Scope-based Resource Management (SBRM). This latter term is for the special case of automatic variables. RAII ties resources to object lifetime, which may not coincide with entry and exit of a scope. (Notably variables allocated on the free store have lifetimes unrelated to any given scope.) However, using RAII for automatic variables (SBRM) is the most common use case. (en)
  • En programmation orientée objet, resource acquisition is initialization, abrégé RAII et traduisible littéralement par l'acquisition d'une ressource est une initialisation, est une technique utilisée dans plusieurs langages orientés objet, comme C++, D et Ada. Cette technique, inventée par Bjarne Stroustrup, permet de s'assurer, lors de l'acquisition d'une ressource, que celle-ci sera bien libérée en liant cette acquisition à la durée de vie d'un objet : la ressource est acquise durant l'initialisation de l'objet, il est alors possible de l'utiliser tant que la ressource est disponible et elle est libérée au moment de la destruction de l'objet, cette destruction étant garantie même en cas d'erreur. En C++, les objets résidant sur la pile sont automatiquement détruits lors de la sortie de la portée, y compris dans le cas d'une levée d'exception ; leur destructeur est appelé avant que l'exception ne se propage. La technique RAII aide à l'écriture de code plus résistant aux exceptions : pour libérer une ressource avant de permettre à l'exception de se propager, on peut écrire un destructeur approprié plutôt que de disséminer et multiplier les instructions de nettoyage entre les blocs de prise en compte des exceptions. (fr)
  • RAII(Resource Acquisition Is Initialization)は、日本語では「リソース取得は初期化である」「リソースの確保は初期化時に」「リソースの取得と初期化」などの意味を持ち、資源(リソース)の確保と解放を、クラス型の変数の初期化と破棄処理に結び付けるというプログラミングのテクニックである。特にC++とD言語で一般的であり、デストラクタをサポートしないC言語などに対する優位性や利便性のうちのひとつとなっている。 RAIIでは、資源の取得をクラス型変数の構築(初期化)時に、また返却を破壊時に行う。特にプログラムの制御フローが自動変数の属するブロックを抜けるとき、その変数のデストラクタが自動的に呼ばれるため、デストラクタを適切に記述したクラス型変数の寿命が終わるとすぐに資源が返却されることが保証できるようになる。これは例外が発生したときでも同様であるため、RAIIは例外安全なコードを書くための鍵となる概念となった (Sutter 1999)。 (ja)
  • Resource acquisition is initialization (inicjowanie przy pozyskaniu zasobu), w skrócie RAII – popularny wzorzec projektowy w C++ i D. Technika łączy przejęcie i zwolnienie zasobu z inicjowaniem i usuwaniem zmiennych. Przejęcie zasobu jest połączone z konstrukcją, a zwolnienie z automatyczną destrukcją zmiennej. Ponieważ wywołanie destruktora jest automatyczne, gdy zmienna wyjdzie poza swój zasięg, jest zagwarantowane, że zasób zostanie zwolniony od razu, gdy skończy się czas życia zmiennej. Stanie się tak również przy wystąpieniu wyjątku. RAII jest kluczową koncepcją przy pisaniu kodu odpornego na błędy. Technika RAII jest używana na przykład przy zakładaniu blokad wątków albo obsłudze plików. Własność pamięci przydzielanej dynamicznie (za pomocą new w C++) może być również kontrolowana za pomocą RAII. Do tego celu biblioteka standardowa C++11 definiuje inteligentne wskaźniki: std::unique_ptr dla obiektów z jednym właścicielem oraz std::shared_ptr dla obiektów współdzielonych. Podobny efekt można uzyskać także za pomocą std::auto_ptr (z C++98, aktualnie usunięty ze standardu) i boost::shared_ptr z biblioteki Boost lub Loki::SmartPtr z biblioteki Loki. (pl)
  • Получение ресурса есть инициализация (англ. Resource Acquisition Is Initialization (RAII)) — программная идиома, смысл которой заключается в том, что с помощью тех или иных программных механизмов получение некоторого ресурса неразрывно совмещается с инициализацией, а освобождение — с уничтожением объекта. Типичным (хотя и не единственным) способом реализации является организация получения доступа к ресурсу в конструкторе, а освобождения — в деструкторе соответствующего класса. Во многих языках программирования, например в C++, деструктор переменной немедленно вызывается при выходе из её области видимости, когда ресурс необходимо освободить. Это позволяет гарантировать освобождение ресурса при возникновении исключения: код становится (англ. Exception safety). В языках, использующих сборщик мусора, объект продолжает существовать, пока на него существуют ссылки. (ru)
  • Aquisição de Recurso é Inicialização (conhecido pelo acrônimo RAII para o termo em língua inglesa Resource Acquisition Is Initialization) é um padrão de projeto de software para C++, D e Rust que combina a aquisição e liberação de recursos com inicialização e destruição de objetos. Segundo a RAII, o uso de memória de um objeto inicia-se na sua declaração, e termina quando o objeto sai do escopo, seja porque a execução chegou ao final do bloco, ou porque uma exceção foi lançada. A liberação de memória é possível através do uso dos métodos destrutores da classe – a liberação da memória no destrutor garante que ela será realizada em qualquer caminho que o fluxo seguir, tornando o código seguro. (pt)
  • Resource Acquisition Is Initialization (RAII), перекладається як «Отримання ресурсу є ініціалізація» — , яка використовується в деяких об`єктно-орієнтовних мовах програмування, більшою мірою в C++, звідки вона взяла початок, але також застосовується в D, Ada, і Vala. Відповідно RAII, утримання ресурсу тісно прив'язане до життєвого циклу об'єкта: алокація ресурсу (отримання) відбувається в момент створення об'єкта за допомогою конструктора, а деаллокація (звільнення) відбувається в момент знищення об'єкта за допомогою деструктора. Якщо об'єкти видаляються правильно, витоків ресурсів не відбувається. Інші назви цієї ідіоми: Constructor Acquires, Destructor Releases (CADRe) і Scope-based Resource Management (SBRM); (uk)
  • RAII,全称资源获取即初始化(英語:Resource Acquisition Is Initialization),它是在一些面向对象语言中的一种。RAII源于C++,在Java,C#,D,Ada,Vala和Rust中也有应用。1984-1989年期间,比雅尼·斯特勞斯特魯普和在设计C++异常时,为解决时的性而使用了该用法,后来比雅尼·斯特勞斯特魯普将其称为RAII。 RAII要求,资源的有效期与持有资源的严格绑定,即由对象的构造函数完成(获取),同时由析构函数完成资源的释放。在这种要求下,只要对象能正确地析构,就不会出现问题。 (zh)
dbo:wikiPageExternalLink
dbo:wikiPageID
  • 693532 (xsd:integer)
dbo:wikiPageLength
  • 16796 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID
  • 1100231470 (xsd:integer)
dbo:wikiPageWikiLink
dbp:wikiPageUsesTemplate
dcterms:subject
rdfs:comment
  • Ressourcenbelegung ist Initialisierung, meist abgekürzt durch RAII, für englisch resource acquisition is initialization, bezeichnet eine in bestimmten Programmiersprachen (wie z. B. C++) verbreitete Programmiertechnik zur Verwaltung von Betriebsmitteln (auch Ressourcen genannt). Dabei wird die Belegung von Betriebsmitteln an den Konstruktoraufruf einer Variablen eines benutzerdefinierten Typs und die Freigabe der Betriebsmittel an dessen Destruktoraufruf gebunden. Die automatische Freigabe wird beispielsweise durch das Verlassen des Gültigkeitsbereichs ausgelöst (am Blockende, bei Ausnahmeauslösung, durch Rückgabe an den Aufrufer usw.), der implizite Destruktoraufruf der Variablen sorgt dann für die Wiederfreigabe der Ressource. (de)
  • RAII(Resource Acquisition Is Initialization)は、日本語では「リソース取得は初期化である」「リソースの確保は初期化時に」「リソースの取得と初期化」などの意味を持ち、資源(リソース)の確保と解放を、クラス型の変数の初期化と破棄処理に結び付けるというプログラミングのテクニックである。特にC++とD言語で一般的であり、デストラクタをサポートしないC言語などに対する優位性や利便性のうちのひとつとなっている。 RAIIでは、資源の取得をクラス型変数の構築(初期化)時に、また返却を破壊時に行う。特にプログラムの制御フローが自動変数の属するブロックを抜けるとき、その変数のデストラクタが自動的に呼ばれるため、デストラクタを適切に記述したクラス型変数の寿命が終わるとすぐに資源が返却されることが保証できるようになる。これは例外が発生したときでも同様であるため、RAIIは例外安全なコードを書くための鍵となる概念となった (Sutter 1999)。 (ja)
  • RAII,全称资源获取即初始化(英語:Resource Acquisition Is Initialization),它是在一些面向对象语言中的一种。RAII源于C++,在Java,C#,D,Ada,Vala和Rust中也有应用。1984-1989年期间,比雅尼·斯特勞斯特魯普和在设计C++异常时,为解决时的性而使用了该用法,后来比雅尼·斯特勞斯特魯普将其称为RAII。 RAII要求,资源的有效期与持有资源的严格绑定,即由对象的构造函数完成(获取),同时由析构函数完成资源的释放。在这种要求下,只要对象能正确地析构,就不会出现问题。 (zh)
  • اكتساب الموارد تهيئة Resource acquisition is initialization (RAII) هو مصطلح برمجي يستخدم في عدة لغات موجهة للكائنات لوصف سلوك لغوي معين. في RAII ، يعد الاحتفاظ بالمورد صنف غير متغيّر، ويرتبط بعمر الكائن: يتم تخصيص الموارد (أو اكتساب) أثناء إنشاء الكائن (على وجه التحديد التهيئة)، من قبل المنشئ، بينما يتم إلغاء تخصيص الموارد (التحرير/إصدار) أثناء تدمير الكائن (على وجه التحديد)، من قبل المدمرة. وبعبارة أخرى، يجب أن ينجح اكتساب الموارد حتى تنجح التهيئة. وبالتالي يتم ضمان الاحتفاظ بالمورد بين وقت انتهاء التهيئة وبدء الانتهاء (الاحتفاظ بالموارد هو صنف لا متغيّر)، ويتم الاحتفاظ به فقط عندما يكون الكائن على قيد الحياة. وبالتالي إذا لم يكن هناك أي تسرب للكائن، فلن يكون هناك تسرب للموارد. (ar)
  • RAII (del inglés resource acquisition is initialization, que podría traducirse como «adquirir recursos es inicializar») es un popular patrón de diseño en varios lenguajes de programación orientados a objetos como C++ y Ada. La técnica fue inventada por Bjarne Stroustrup​ para reservar y liberar recursos en C++. En este lenguaje, después de que una excepción es lanzada, el único código fuente que con seguridad es ejecutado es el de los destructores de objetos que residen en la pila. Por lo tanto los recursos necesitan ser gestionados con objetos adecuados. Los recursos son adquiridos durante la inicialización, cuando no hay posibilidad de que sean usados antes de estar disponibles, y liberados cuando se destruyen los mismos, algo que es garantizado que suceda incluso cuando se dan errores. (es)
  • Resource acquisition is initialization (RAII) is a programming idiom used in several object-oriented, statically-typed programming languages to describe a particular language behavior. In RAII, holding a resource is a class invariant, and is tied to object lifetime. Resource allocation (or acquisition) is done during object creation (specifically initialization), by the constructor, while resource deallocation (release) is done during object destruction (specifically finalization), by the destructor. In other words, resource acquisition must succeed for initialization to succeed. Thus the resource is guaranteed to be held between when initialization finishes and finalization starts (holding the resources is a class invariant), and to be held only when the object is alive. Thus if there are (en)
  • En programmation orientée objet, resource acquisition is initialization, abrégé RAII et traduisible littéralement par l'acquisition d'une ressource est une initialisation, est une technique utilisée dans plusieurs langages orientés objet, comme C++, D et Ada. Cette technique, inventée par Bjarne Stroustrup, permet de s'assurer, lors de l'acquisition d'une ressource, que celle-ci sera bien libérée en liant cette acquisition à la durée de vie d'un objet : la ressource est acquise durant l'initialisation de l'objet, il est alors possible de l'utiliser tant que la ressource est disponible et elle est libérée au moment de la destruction de l'objet, cette destruction étant garantie même en cas d'erreur. (fr)
  • Resource acquisition is initialization (inicjowanie przy pozyskaniu zasobu), w skrócie RAII – popularny wzorzec projektowy w C++ i D. Technika łączy przejęcie i zwolnienie zasobu z inicjowaniem i usuwaniem zmiennych. Technika RAII jest używana na przykład przy zakładaniu blokad wątków albo obsłudze plików. (pl)
  • Aquisição de Recurso é Inicialização (conhecido pelo acrônimo RAII para o termo em língua inglesa Resource Acquisition Is Initialization) é um padrão de projeto de software para C++, D e Rust que combina a aquisição e liberação de recursos com inicialização e destruição de objetos. (pt)
  • Получение ресурса есть инициализация (англ. Resource Acquisition Is Initialization (RAII)) — программная идиома, смысл которой заключается в том, что с помощью тех или иных программных механизмов получение некоторого ресурса неразрывно совмещается с инициализацией, а освобождение — с уничтожением объекта. В языках, использующих сборщик мусора, объект продолжает существовать, пока на него существуют ссылки. (ru)
  • Resource Acquisition Is Initialization (RAII), перекладається як «Отримання ресурсу є ініціалізація» — , яка використовується в деяких об`єктно-орієнтовних мовах програмування, більшою мірою в C++, звідки вона взяла початок, але також застосовується в D, Ada, і Vala. Інші назви цієї ідіоми: Constructor Acquires, Destructor Releases (CADRe) і Scope-based Resource Management (SBRM); (uk)
rdfs:label
  • اكتساب الموارد تهيئة (ar)
  • Ressourcenbelegung ist Initialisierung (de)
  • RAII (es)
  • Resource acquisition is initialization (fr)
  • RAII (ja)
  • Resource acquisition is initialization (en)
  • Resource Acquisition Is Initialization (pl)
  • Aquisição de Recurso é Inicialização (pt)
  • Получение ресурса есть инициализация (ru)
  • RAII (zh)
  • Resource Acquisition Is Initialization (uk)
owl:sameAs
prov:wasDerivedFrom
foaf:isPrimaryTopicOf
is dbo:wikiPageRedirects of
is dbo:wikiPageWikiLink 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