<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.sarg.dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=2A00%3A23C5%3AFE1C%3A3701%3AF849%3AAA67%3A5327%3A4A9D</id>
	<title>Vero - Wikipedia - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sarg.dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=2A00%3A23C5%3AFE1C%3A3701%3AF849%3AAA67%3A5327%3A4A9D"/>
	<link rel="alternate" type="text/html" href="https://wiki.sarg.dev/index.php/Special:Contributions/2A00:23C5:FE1C:3701:F849:AA67:5327:4A9D"/>
	<updated>2026-08-14T18:42:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.sarg.dev/index.php?title=Rack_of_lamb&amp;diff=427761</id>
		<title>Rack of lamb</title>
		<link rel="alternate" type="text/html" href="https://wiki.sarg.dev/index.php?title=Rack_of_lamb&amp;diff=427761"/>
		<updated>2025-08-03T10:58:24Z</updated>

		<summary type="html">&lt;p&gt;2A00:23C5:FE1C:3701:F849:AA67:5327:4A9D: also known as &amp;quot;best end&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Short description|Cut of lamb}}&lt;br /&gt;
[[File:Rack_Carr%C3%A9_d%27agneau.JPG#file|thumb|right|Rack of lamb (uncooked) with paper frills ([[Manchette (cuisine)|manchette]]s) ready to be added after cooking.]]&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;rack of lamb,&#039;&#039;&#039; also known as &#039;&#039;&#039;carré d&#039;agneau&#039;&#039;&#039; (though this term may also refer to other cuts) or &#039;&#039;&#039;best end&#039;&#039;&#039;, is a [[Lamb and mutton|lamb]] cut that is perpendicular to the spine and includes 16 ribs or [[Lamb chop (meat)|chops]]. In retail, it is commonly sold as a &#039;single&#039; rack, which means it is sawn longitudinally and includes the eight ribs on one side only. However, it may also be sold as a &amp;quot;double rack of lamb,&amp;quot; with ribs on both sides. Another presentation involves placing two French trimmed racks together with the ribs interlinked, which is often referred to as a &amp;quot;[[guard of honour]]&amp;quot;.&amp;lt;ref name=&amp;quot;peterson&amp;quot;&amp;gt;James Peterson, &#039;&#039;Glorious French Food: A Fresh Approach to the Classics&#039;&#039;, 2002, p. 508-9&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rack of lamb is typically [[roasting|roasted]], sometimes with a coating of herbed breadcrumb [[persillade]]. To enhance the presentation, the tips of the bones are occasionally decorated with paper frills known as [[Manchette (cuisine)|manchettes]].&amp;lt;ref name=&amp;quot;Encyclopedia of Kitchen History - Paper - page 717&amp;quot;&amp;gt;{{cite book|last=Mary Ellen Snodgrass|author-link=Mary Ellen Snodgrass|title=Encyclopedia of Kitchen History|publisher=[[Taylor &amp;amp; Francis]]|date=29 November 2004|pages=717|chapter=P|isbn=9780203319178|chapter-url=https://books.google.com/books?id=D7IhN7lempUC&amp;amp;dq=Manchette+%22Paper%22&amp;amp;pg=PA717|accessdate=10 November 2013}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
[[File:Outback_Steakhouse_rack_of_lamb.JPG#file|thumb|left|Roast rack of lamb]]&lt;br /&gt;
&lt;br /&gt;
==Crown roast==&lt;br /&gt;
&lt;br /&gt;
Two or three single racks of lamb tied into a circle make a &amp;quot;crown roast of lamb&amp;quot;.&amp;lt;ref name=&amp;quot;peterson&amp;quot;/&amp;gt; Crown roasts are sometimes cooked with (ground-lamb) stuffing in the middle.&lt;br /&gt;
&lt;br /&gt;
==Frenching==&lt;br /&gt;
&lt;br /&gt;
Rack of lamb is often French trimmed (also known as Frenching in the United States), that is, the rib bones are exposed by cutting off the fat and meat covering them. Typically, three inches (7–8 cm) of bone beyond the main muscle (the rib eye or [[Longissimus dorsi]]) are left on the rack, with the top two inches (5 cm) exposed.&amp;lt;ref name=&amp;quot;peterson&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
{{portal|Food}}&lt;br /&gt;
* [[List of lamb dishes]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Rack of lamb}}&lt;br /&gt;
[[Category:Lamb dishes]]&lt;br /&gt;
[[Category:Cuts of lamb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Meat-stub}}&lt;/div&gt;</summary>
		<author><name>2A00:23C5:FE1C:3701:F849:AA67:5327:4A9D</name></author>
	</entry>
	<entry>
		<id>https://wiki.sarg.dev/index.php?title=Metaobject&amp;diff=359734</id>
		<title>Metaobject</title>
		<link rel="alternate" type="text/html" href="https://wiki.sarg.dev/index.php?title=Metaobject&amp;diff=359734"/>
		<updated>2025-08-03T10:40:59Z</updated>

		<summary type="html">&lt;p&gt;2A00:23C5:FE1C:3701:F849:AA67:5327:4A9D: do not italicise quoted speech&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Short description|Object that manipulates, creates, describes, and implements other objects}}&lt;br /&gt;
In [[computer science]], a &#039;&#039;&#039;metaobject&#039;&#039;&#039; is an [[Object (computer science)|object]] that manipulates, creates, describes, or implements objects (including itself). The object that the metaobject pertains to is called the base object. Some information that a metaobject might define includes the base object&#039;s [[Type system|type]], [[Interface (object-oriented programming)|interface]], [[class (computer science)|class]], [[method (computer science)|method]]s, [[Attribute (computing)|attributes]], [[parse tree]], etc. Metaobjects are examples of the computer science concept of [[Reflection (computer programming)|reflection]], where a system has access (usually at run time) to its own internal structure. Reflection enables a system to essentially rewrite itself on the fly, to alter its own implementation as it executes.&amp;lt;ref&amp;gt;{{cite journal|last=Smith|first=Brian C|title=Procedural Reflection In Programming Languages|journal=MIT Technical Report|date=1982-01-01|issue=MIT-LCS-TR-272|url=http://publications.csail.mit.edu/lcs/specpub.php?id=840|access-date=16 December 2013|archive-url=https://web.archive.org/web/20151213034343/http://publications.csail.mit.edu/lcs/specpub.php?id=840|archive-date=13 December 2015|url-status=dead}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Metaobject protocol&amp;lt;!--&#039;Metaobject protocol&#039; redirects here--&amp;gt; ==&lt;br /&gt;
A &#039;&#039;&#039;metaobject protocol&#039;&#039;&#039;&amp;lt;!--boldface per WP:R#PLA--&amp;gt; (&#039;&#039;&#039;MOP&#039;&#039;&#039;) provides the vocabulary ([[Protocol (object-oriented programming)|protocol]]) to access and manipulate the structure and behaviour of systems of objects. Typical functions of a metaobject protocol include:&amp;lt;ref&amp;gt;{{cite book|last=Foote|first=Brian|author2=Ralph Johnson |title=Conference proceedings on Object-oriented programming systems, languages and applications |chapter=Reflective facilities in Smalltalk-80 |pages=327–335|date=1–6 October 1989|chapter-url=http://www.laputan.org/ref89/ref89.html|access-date=16 December 2013|doi=10.1145/74877.74911|isbn=0897913337|doi-access=free}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
*Create or delete a new class&lt;br /&gt;
*Create a new property or method&lt;br /&gt;
*Cause a class to inherit from a different class (&amp;quot;change the class structure&amp;quot;)&lt;br /&gt;
*Generate or change the code defining the methods of a class&lt;br /&gt;
&lt;br /&gt;
Metaobject protocol is contrary to [[Bertrand Meyer]]&#039;s [[open/closed principle]], which holds that software object systems should be &#039;&#039;open for extension&#039;&#039; but &#039;&#039;closed for modification&#039;&#039;. This principle effectively draws a distinction between &#039;&#039;extending&#039;&#039; an object by adding to it, and &#039;&#039;modifying&#039;&#039; an object by redefining it, proposing that the former is a desirable quality (&amp;quot;objects should be extensible to meet the requirements of future use cases&amp;quot;), while the latter is undesirable (&amp;quot;objects should provide a stable interface not subject to summary revision&amp;quot;). Metaobject protocol, by contrast, transparently exposes the internal composition of objects and the entire object system in terms of the system itself. In practice, this means that programmers may use objects to redefine themselves, possibly in quite complex ways.&lt;br /&gt;
&lt;br /&gt;
Furthermore, metaobject protocol is not merely an [[Application Programming Interface|interface]] to an &amp;quot;underlying&amp;quot; implementation; rather, through metaobject protocol the object system is [[Recursive definition|recursively implemented]] in terms of a &#039;&#039;meta&#039;&#039;-object system, which itself is theoretically implemented in terms of a &#039;&#039;meta&#039;&#039;-metaobject system, and so on until an arbitrary [[Base case (recursion)|base case]] (a consistent [[State (computing)|state]] of the object system) is determined, with the protocol as such being the recursive functional relationship between these implementation levels.&lt;br /&gt;
&lt;br /&gt;
Implementing object systems in such a way opens the possibility for radical discretionary redesign, providing deep flexibility but introducing possibly complex or difficult-to-understand metastability issues (for instance, the object system must not [[Persistent data structure|destructively update]] its own metaobject protocol - its internal self-representation - but the potential destructiveness of some updates is non-trivial to predict and may be hard to reason about), depending on the recursive depth to which the desired modifications are propagated.&amp;lt;ref name=&amp;quot;AMOP text&amp;quot;&amp;gt;&#039;&#039;The Art of the Metaobject Protocol&#039;&#039;, Appendix C — Living with Circularity&amp;lt;/ref&amp;gt; For this reason, metaobject protocol, when present in a language, is usually used sparingly and for specialised purposes such as software that transforms other software or itself in sophisticated ways, for example in reverse engineering.&amp;lt;ref&amp;gt;{{cite book|last=Favre|first=Lilliana|year=2009|publisher=Springer|isbn=978-3-642-01861-9|author2=Liliana Martinez |author3=Claudia Pereira |title=Enterprise, Business-Process and Information Systems Modeling |chapter=MDA-Based Reverse Engineering of Object Oriented Code |series=Lecture Notes in Business Information Processing |volume=29 |pages=251–263 |doi=10.1007/978-3-642-01862-6_21}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Runtime and compile time ===&lt;br /&gt;
When compilation is not available at run-time there are additional complications for the implementation of metaobject protocol. For example, it is possible to change the type hierarchy with such a protocol but doing so may cause problems for code compiled with an alternative class model definition. Some environments have found innovative solutions for this, e.g., by handling metaobject issues at compile time. A good example of this is [[OpenC++ (software tool)|OpenC++]].&amp;lt;ref&amp;gt;{{cite book|last=Chiba|first=Shigeru |title=Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications |chapter=A metaobject protocol for C++ |pages=285–299|year=1995|chapter-url=http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.15.7049|access-date=27 December 2013|doi=10.1145/217838.217868|isbn=978-0897917032|s2cid=3090058 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
The [[Semantic Web]] object-oriented model is more dynamic than most standard object systems, and is consistent with runtime metaobject protocols. For example, in the Semantic Web model classes are expected to change their relations to each other and there is a special [[inference engine]] known as a classifier that can validate and analyze evolving class models.&amp;lt;ref&amp;gt;{{cite web|url=http://www.w3.org/2001/sw/BestPractices/SE/ODSD/|title=A Semantic Web Primer for Object-Oriented Software Developers|last1=Knublauch|first1=Holger|last2=Oberle|first2=Daniel|last3=Tetlow|first3=Phil|last4=Wallace|first4=Evan|publisher=[[W3C]]|date=2006-03-09|access-date=2008-07-30}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
=== Usage ===&lt;br /&gt;
The first metaobject protocol was in the [[Smalltalk]] object-oriented programming language developed at [[Xerox PARC]]. The [[Common Lisp Object System]] (CLOS) came later and was influenced by the Smalltalk protocol as well as by [[Brian Cantwell Smith|Brian C. Smith]]&#039;s original studies on 3-Lisp as an infinite tower of evaluators.&amp;lt;ref&amp;gt;{{cite book |pages=298–307 |author1=Daniel P. Friedman |author2=Mitchell Wand |title=Proceedings of the 1986 ACM conference on LISP and functional programming - LFP &#039;86 |chapter=The mystery of the tower revealed: A non-reflective description of the reflective tower |date=1988 |doi=10.1145/319838.319871 |isbn=978-0897912006 |s2cid=7974739 }}&amp;lt;/ref&amp;gt; The CLOS model, unlike the Smalltalk model, allows a class to have [[Multiple inheritance|more than one superclass]]; this raises additional complexity in issues such as resolving the lineage of the class hierarchy on some object instance. CLOS also allows for [[multiple dispatch|dynamic multimethod dispatch]], which is handled via [[generic functions]] rather than [[message passing]] like in Smalltalk&#039;s [[single dispatch]].&amp;lt;ref&amp;gt;{{cite web|title=Integrating Object-Oriented and Functional Programming|url=https://www.cip.ifi.lmu.de/~langeh/test/2004%20-%20Gabriel%20-%20CLOS%20-%20Integrating%20Object-Oriented%20and%20Functional%20Programming.pdf|access-date=7 July 2016}}&amp;lt;/ref&amp;gt; The most influential book describing the semantics and implementation of the metaobject protocol in Common Lisp is &#039;&#039;[[The Art of the Metaobject Protocol]]&#039;&#039; by [[Gregor Kiczales]] et al.&amp;lt;ref&amp;gt;{{cite book|last=Kiczales|first=Gregor|title=The Art of the Metaobject Protocol|publisher=The MIT Press|isbn=978-0262610742|author2=Jim des Rivieres |author3=Daniel G. Bobrow |date=July 30, 1991}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metaobject protocols are also extensively used in software engineering applications. In virtually all commercial CASE, re-engineering, and Integrated Development Environments there is some form of metaobject protocol to represent and manipulate the design artifacts.&amp;lt;ref&amp;gt;{{cite journal|last=Johnson|first=Lewis|author2=David R. Harris |author3=Kevin M. Benner |author4=Martin S. Feather |title=Aries: The Requirements/Specification Facet for KBSA|journal=Rome Laboratory Final Technical Report|date=October 1992|volume=RL-TR-92-248}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web|title=The Origin of Refine|url=http://www.metaware.fr/images/pdf/1_Metaware_The_Origin%20of_Refine_Whitepaper.pdf|work=www.metaware.fr|publisher=Metaware White Paper|access-date=6 January 2014|url-status=dead|archive-url=https://web.archive.org/web/20140107000613/http://www.metaware.fr/images/pdf/1_Metaware_The_Origin%20of_Refine_Whitepaper.pdf|archive-date=7 January 2014}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web|title=OMG&#039;s MetaObject Facility|url=http://www.omg.org/mof/|work=omg.org|publisher=Object Management Group|access-date=7 January 2014}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A metaobject protocol is one way to implement [[aspect-oriented programming]]. Many of the early founders of MOPs, including [[Gregor Kiczales]], have since moved on to be the primary advocates for aspect-oriented programming. Kiczales et al. of [[Palo Alto Research Center|PARC]] were hired to design [[AspectJ]] for [[Java (programming language)|Java]], a language which does not possess a native metaobject protocol.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Kind (type theory)]]&lt;br /&gt;
*[[Metaclass]]&lt;br /&gt;
*Javassist&lt;br /&gt;
*[[Joose (framework)|Joose JavaScript meta object system]]&lt;br /&gt;
*[[Moose (Perl)|Moose Perl meta object system]]&lt;br /&gt;
*[[OpenJava]]&lt;br /&gt;
*[[Unified Modeling Language]]: UML&lt;br /&gt;
*[[Groovy (programming language)|Groovy]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [https://www.gnu.org/software/guile/docs/goops/MOP-Specification.html#MOP%20Specification The Guile MOP specification (GOOPS, based on Tiny CLOS)]&lt;br /&gt;
* [https://www.gnu.org/software/guile/docs/goops/Metaobjects-and-the-Metaobject-Protocol.html Metaobjects and the Metaobject Protocol]&lt;br /&gt;
* [https://clos-mop.hexstreamsoft.com/ Common Lisp Object System Metaobject Protocol]  (contains two chapters from &#039;&#039;The Art of the Metaobject Protocol&#039;&#039;)&lt;br /&gt;
* [http://python-3-patterns-idioms-test.readthedocs.org/en/latest/Metaprogramming.html Python 2.6 Metaprogramming]&lt;br /&gt;
&lt;br /&gt;
{{Data types}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Object (computer science)]]&lt;/div&gt;</summary>
		<author><name>2A00:23C5:FE1C:3701:F849:AA67:5327:4A9D</name></author>
	</entry>
</feed>