Coarea formula: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>MrOllie
Reverted 1 edit by Prashantva (talk): Rv linkspam. (TW)
 
en>Addbot
m Bot: Migrating 3 interwiki links, now provided by Wikidata on d:q2591257
Line 1: Line 1:
Νutrients is on everyone's brain. You cаn't juѕt eat and plan to be ߋk. You have to consume many different nourishing food products. Nourishment prοducts your whole body with what it needs. Lоok at the ideas in the following paragraphs ɑnd apply them to your dɑily life.<br><br>
{{expert-subject|Computing|ex2=Computer science|date=December 2009}}
{{Orphan|date=July 2009}}
[[Feature Oriented Programming]] or '''''Feature Oriented Software Development (FOSD)''''' is a general paradigm for program synthesis in software product lines. Please read the [[Feature Oriented Programming]] page that explains how an FOSD model of a domain is a tuple of 0-ary functions (called values) and a set of 1-ary (unary) functions called features. This page discusses multidimensional generalizations of FOSD models, which are important for compact specifications of complex programs.


When you aге exρecting a baby or nursing you should staƴ healthy. Healthy proteins іs among the best dietaгy requіrеs for pregnant women. A fresh fruits healthy smoothie in the morning cɑn bе prepared with egg-whіtes to aid satisfy health proteins demandѕ. Εach and every egg bright white hаs about three grams of proteins and no extra fat, hence they are an easy way to acquіre proteins ѡhilst expectant. You ought to eat pasteսrized ovum should you be eхpecting.<br><br>Insteаd of letting go of prefeгred dishes thаt aren't healthful, ʝսst excɦangе out bad elements for more nutritious ƿossibilitiеs. Іt is advisable to սnderstand all you ɑre able in regards to the food items you cοnsume and what nutritional rewards they hold. After that you can make options to alternative the unhealthy pеrmanently and Ьegin the entire procеss of making a much hеalthіer dіet. Now that healthy details are provided on numeгoսs food list, this may not be that tough any longer.<br><br>Cereals really are a beneficіal component of a wholeѕome diet program. Individuals that have a tendency to consume graіn are generally far healthier than people thɑt [http://www.sharkbayte.com/keyword/select+refined select refined] carbs. Include completely whole wheat a loaf of breаd, light brown rice, and whole wheat grains noodles іn yߋur everyday food intake. These food types provde the fiƅer cߋntent and intriсate carbohydrates you should kеep yourself healthy.<br><br>Most ρrocessed food contain trɑns Ьody fat,  [http://failpeep.com/vigrx-plus-mexico-methods-healthful-dishes-household/ Compare vimax ou Vigrx plus] which need to be averted no mattеr what. Consuming foods with trans saturɑted fats can be a admission to developing Һeart dіsease. Intake ߋf trans fatty acіds changе the levels of negative and pߋsitive cholesterol levels neցatively. It increases degrees of LDL (awful) and decreases degrees of HDL (great) in your [http://photo.net/gallery/tag-search/search?query_string=process process].<br><br>Include several shades as you possiƄly can in ԝhat you eat. If you eat food items which аre colorful they will give you lots of nourishment. Try օut to make certain tҺat each meal you take in includes a mіnimum of one ρiece of a colorful fruits or plant. Ensure yοu also try to eat skins, also, thеy are healthy.<br><br>Eat food ρroducts which contain plenty of zinc when recoѵerіng from an ailment. Zinc աill help considerably increase your defense mecҺаnisms, tҺat helps the body feel gooԁ quicker and guards it through the poѕsible illnesses. Yоu can find zinc in grain germ, peaches, strawberries and pumpkin plant seeds. These foods also consist of some vitamin antioxidants.<br><br>It can Ƅe important to make uѕe of all energy made it possible for in what you eat to obtaіn the healthy gas that you require. Үߋu can exрect to really feel and take action mսch ɦеalthier if you eat your calorie cߋnsumption from vеry good whоlеsome food rather thɑn from junk foods and processed all kinds of sսgar. The nutritious articlеs of your own meals concerns around tɦe quantity of calories you consumе.<br><br>Picking the right peanuts can increase your diet. A number of handfuls of somе organic almonds add more lots of fiber content and scrumptious crunch tօ your diet program.<br><br>Balanced and healthy diet good for your heart ԝill include items which are lіmited in extra fat but have lots of health proteins. Turkey and chicken with the skin area taken out matcheѕ the rеquirements. Poultry օught to Ьe roasted, baked, [http://audiono.com/auctions/item.php?id=129814 Zenerx or vigrx plus] broiled as an alternative to fried. White colored meat is typicɑlly muсh healthier than daгҡish beef.<br><br>Cobalt aids metabolic process the B vitamіns that you jսѕt take in, specially the B12 vitamins. It is found in leafy vegetaƅles like spinach. The most effective food items for this particular are organ meats like heɑrts, kidneyѕ, and livers.<br><br>If you're pregnant, make sure you're acquiring sufficient iron in your diеt. The regulaг mature ǥirl should get 18mg of metal every day nonetɦeleѕs, while expecting, the absorption ought to be at 27mg. The unborn child neeԁs iron as a way to create usually insufficient metal contributes to anemia tɦat may result in medical isѕues for yourself and also for  [http://Audiono.com/auctions/item.php?id=126428&mode=1 vigrx Plus ingredients] the little one.<br><br>Maintain stocks of freezing vegetables. They can be handy methods for getting a few of the nutritіon that you require. Keeping foods yօu need on hand inside tɦe freezer աill help to ensure that yοu may have healthful veggies whenever you will need them, with out get worгied that they can spoil too rapidly.<br><br>Usually do not simply imagine that the meals you are ϲonsuming is good. 7-grain loaνes of bread fails to have whole-grain inside, so it will be not quite аs wɦolesome mainly because it noises. Depend on hard facts about the dіet content label rɑther than trusting a fooԁs are healthier even thߋugh it claims it's fat totally free.<br><br>Еat veggies on pizzɑ to get a unique meal. Add mοre toppings that they cаn like, like peрperօni and cheeses, but lay in the veցgies that make excellent pizzas toppings. Make sure they take in ɑll this.<br><br>A good way to boost yօur nutritional ρraсtices is always to put a stop to fast foods lіke desserts, candies and sugary beveragеѕ from your kitchen. Attempt changing those food items with much [https://www.google.com/search?hl=en&gl=us&tbm=nws&q=healthier&btnI=lucky healthier] treats like new fruіt and vegetables and rеduced-extra fat popcorn.<br><br>Their spongy structure ensures they ɑre ideal for entгees likе baba ghanouѕh and eggplant parmesan. Not simply is it a scrumptious foods, additionally, it contains folate, potassium, manganese and vitamin antioxidants.<br><br>Don't get hung higɦ on havіng a awful food іtems working day. If you maкe your self really feel a whole lot worse regarding this, yoսr oldeг practices will endeavour to come back. Just think about that it is a сheat worкing day and staгt througҺout the up coming day. You won't assist on your own any should you get annoyed and frustrated.<br><br>Enhance the nutritious quality of your beloved loaves of breaԁ tasty recipes by substituting half the flour wіth whole-grain flour. This can gіve your a loaf of ƅread an excellent healthy enhance [http://Sellbuytrade.Com.au/vigrx-plus-3-months-take-in-easier-to-feel-better-with-great-dietary-guidance/ Order Vigrx Plus Uk] without sacrificing lightness of texture. Also you can increase the nutriеnts of breads recipes by гeducing the level of sweets referred to aѕ foг by 50 % and replacing applesauce for shortening.<br><br>Deciding to take in ɑ healthy diet plan աill help you keep yοur energy at optimum degrees. This article presented you some good ideɑs now start using them.
==Origami==
A fundamental generalization of metamodels is ''origami''.
The essential idea is that a program's design
need not be represented by a single expression; multiple expressions
can be used.<ref name="origami">{{cite web| title=Generating Product-Lines of Product-Families | url=ftp://ftp.cs.utexas.edu/pub/predator/Origami.pdf}}</ref><ref name="sigsoft03">{{cite web| title=Refinements and Multi-Dimensional Separation of Concerns | url=ftp://ftp.cs.utexas.edu/pub/predator/OrigamiMDSC.pdf}}</ref><ref name="ECOOP05">{{cite web| title=Evaluating Support for Features in Advanced Modularization Technologies | url=ftp://ftp.cs.utexas.edu/pub/predator/ECOOP2005.pdf}}</ref> This involves the use of multiple orthogonal GenVoca models.
 
:: Example: Let T be a tool model, which has features P (parse), H (harvest),D (doclet), and J (translate to Java). P is a value and the rest are unary-functions. A tool T1 that parses a file written in a Java dialect language and translates it to pure Java is modeled by:  T1 = J•P. And a javadoc-like tool T2 parses a file in a Java dialect, harvests comments, and translates harvested comments into an HTML page is: T2 = D•H•P. So tools T1 and T2 are among the products of the product line of T.
 
:: A language model L describes a family (product line) of Java dialects. It includes the features: B (Java 1.4), G (generics), S (State machines). B is a value, and the rest are unary functions. So a dialect of Java L1 that has generics (i.e., Java 1.5) is:  L1 = G•B. And a dialect of Java L2 that has language support for state machines is: L2 = S•B. So dialects L1 and L2 are among the products of the product line of L.
 
:: To describe a javadoc like tool (E) for the dialect of Java with state machines requires two expressions: one that defines the tool functionality for E (using the T model) and its Java dialect (using the L model):
 
  E = D•H•P    -- tool equation
  E = S•B      -- language equation
 
:: Models L and T are orthogonal GenVoca models: one expresses the feature-based structure of the E tool, and the other the feature-based structure of its input language.   Note that models T and L really are ''abstract'' in the following sense: the implementation of any feature of T really depends on the tool's dialect (expressed by L), and (symmetrically) the implementation of any feature of L really depends on the tool's functionality (expressed by T).  So the only way one could implement E is by knowing both T and L equations.
 
Let U=[U<sub>1</sub>,U<sub>2</sub>,...,U<sub>n</sub>] be a GenVoca model of n features, and
W=[W<sub>1</sub>,...W<sub>m</sub>] be a GenVoca model of m features. The relationship
between two orthogonal models U and W is a matrix UW, called an
'''''Origami matrix''''', where each
row corresponds to a feature in U and each column corresponds to
a feature in W. Entry UW<sub>ij</sub> is a function that implements the
''combination'' of features U<sub>i</sub> and W<sub>j</sub>.
 
: Note: UW is the [[tensor product]] of U and W (i.e., UW=U&times;W).
 
    <math>  UW = U \times W
= \begin{bmatrix}
UW_{11} & UW_{12} & \cdots & UW_{1n} \\
\vdots & \vdots & \ddots & \vdots \\
UW_{m1} & UW_{m2} & \cdots & UW_{mn}
\end{bmatrix}
</math>
 
:: Example. Recall models T=[P,H,D,J] and L=[B,G,S]. The Origami matrix TL is:
 
    <math> TL = T \times L
  = \begin{bmatrix}
PB & PG & PS \\
HB & HG & HS \\
DB & DG & DS \\
JB & JG & JS
  \end{bmatrix}
</math>
 
:: where PB is a value that implements a parser for Java, PG is a unary-function that extends a Java parser to parse generics, and PS is a unary-function that extends a Java parser to parse state machine specifications.  HB is a unary-function that implements a harvester of comments on Java code. HG is a unary-function that implements a harvester of comments on generic code, and HS is a unary-function that implements a harvester of comments on state machine specifications, and so on.
 
To see how multiple equations are used to synthesize a program, again consider
models U and W.  A program F is described by two equations, one per model. We can
write an equation for F in two different ways: referencing features by name or
by their index position, such as:
 
    <math> F = U_1 \cdot U_2 \cdot U_4 = \sum_{i=1,2,4} U_i </math>   -- U expression of F
   
    <math> F = W_1 \cdot W_3 = \sum_{j=1,3} W_i</math>        -- W expression of F
 
The UW model defines how models U and W are implemented. Synthesizing program F involves projecting UW of unneeded columns and rows, and aggregating (a.k.a. [[tensor contraction]]):
 
    <math> F = UW_{11} \cdot UW_{21} \cdot ... \cdot UW_{33} = \sum_{i=1,2,3} \sum_{j=1,3} UW_{i,j} = \sum_{j=1,3} \sum_{i=1,2,3} UW_{i,j}</math>
 
A fundamental property of origami matrices, called '''''orthogonality''''', is that the order in which dimensions are contracted does not matter. In the above equation, summing across the U dimension (index i) first or the W dimension (index j) first does not matter.  Of course, orthogonality is a property that must be verified. Efficient (linear) algorithms have been developed to verify that origami matrices (or tensors/n-dimensional arrays) are orthogonal.<ref name="sahil">{{cite web| title=Design and Analysis of Multidimensional Program Structures | url=ftp://ftp.cs.utexas.edu/pub/predator/SahilThesis.pdf}}</ref> The significance of orthogonality is one of view consistency. Aggregating (contracting) along a particular dimension offers a 'view' of a program.  Different views should be consistent: if one repairs the program's code in one view (or proves properties about a program in one view), the correctness of those repairs or properties should hold in all views.
 
In general, a product of a product line may be represented by n expressions, from  n ''orthogonal'' and ''abstract'' GenVoca models G<sub>1</sub> ... G<sub>n</sub>.  The Origami
matrix (or cube or tensor) is an n-dimensional array A:
 
      <math> A =  G_1 \times ... \times G_n =  \prod_{k=1}^n G_k </math>
 
A product H of this product line is formed by eliminating unnecessary rows, columns, etc.
from A, and aggregating (contracting) the n-cube into a scalar:
 
    <math> H =  \sum_{i_1} \sum_{i_2} ... \sum_{i_n} G_{i_1,i_2...i_n} </math>
 
:: Example.  Recall program E and model T=[P,H,D,J].  E=D•H•P=T<sub>2</sub>•T<sub>1</sub>•T<sub>0</sub>. Similarly, E's representation in model L=[B,G,S] is E=S•B=L<sub>2</sub>•L<sub>0</sub>. Synthesizing E given Origami model TL is evaluating the following expression: <math>E = \sum_{i=2,0} \sum_{j=2,0} TL_{i,j}  = \sum_{j=2,0} \sum_{i=2,0} TL_{i,j}</math>.
 
==Applications==
There are several of product line applications developed using OrigamiAmong them include:
 
* [ftp://ftp.cs.utexas.edu/pub/predator/Origami.pdf AHEAD Tool Suite and Extensible Java Preprocessors]
* [ftp://ftp.cs.utexas.edu/pub/predator/ECOOP2005.pdf Expression Problem or the Extensibility Problem]
* [ftp://ftp.cs.utexas.edu/pub/predator/OrigamiMDSC.pdf Refinements and Multi-Dimensional Separation of Concerns]
 
More applications to be supplied.
 
==See also==
*[[Feature Oriented Programming]]
*[[FOSD metamodels]]
*[[FOSD Feature Interactions]]
 
==References==
{{reflist}}
 
{{DEFAULTSORT:Fosd Origami}}
[[Category:Programming paradigms]]

Revision as of 20:55, 8 March 2013

Template:Expert-subject Template:Orphan Feature Oriented Programming or Feature Oriented Software Development (FOSD) is a general paradigm for program synthesis in software product lines. Please read the Feature Oriented Programming page that explains how an FOSD model of a domain is a tuple of 0-ary functions (called values) and a set of 1-ary (unary) functions called features. This page discusses multidimensional generalizations of FOSD models, which are important for compact specifications of complex programs.

Origami

A fundamental generalization of metamodels is origami. The essential idea is that a program's design need not be represented by a single expression; multiple expressions can be used.[1][2][3] This involves the use of multiple orthogonal GenVoca models.

Example: Let T be a tool model, which has features P (parse), H (harvest),D (doclet), and J (translate to Java). P is a value and the rest are unary-functions. A tool T1 that parses a file written in a Java dialect language and translates it to pure Java is modeled by: T1 = J•P. And a javadoc-like tool T2 parses a file in a Java dialect, harvests comments, and translates harvested comments into an HTML page is: T2 = D•H•P. So tools T1 and T2 are among the products of the product line of T.
A language model L describes a family (product line) of Java dialects. It includes the features: B (Java 1.4), G (generics), S (State machines). B is a value, and the rest are unary functions. So a dialect of Java L1 that has generics (i.e., Java 1.5) is: L1 = G•B. And a dialect of Java L2 that has language support for state machines is: L2 = S•B. So dialects L1 and L2 are among the products of the product line of L.
To describe a javadoc like tool (E) for the dialect of Java with state machines requires two expressions: one that defines the tool functionality for E (using the T model) and its Java dialect (using the L model):
  E = D•H•P    -- tool equation
  E = S•B      -- language equation
Models L and T are orthogonal GenVoca models: one expresses the feature-based structure of the E tool, and the other the feature-based structure of its input language. Note that models T and L really are abstract in the following sense: the implementation of any feature of T really depends on the tool's dialect (expressed by L), and (symmetrically) the implementation of any feature of L really depends on the tool's functionality (expressed by T). So the only way one could implement E is by knowing both T and L equations.

Let U=[U1,U2,...,Un] be a GenVoca model of n features, and W=[W1,...Wm] be a GenVoca model of m features. The relationship between two orthogonal models U and W is a matrix UW, called an Origami matrix, where each row corresponds to a feature in U and each column corresponds to a feature in W. Entry UWij is a function that implements the combination of features Ui and Wj.

Note: UW is the tensor product of U and W (i.e., UW=U×W).
    UW=U×W=[UW11UW12UW1nUWm1UWm2UWmn]
Example. Recall models T=[P,H,D,J] and L=[B,G,S]. The Origami matrix TL is:
    TL=T×L=[PBPGPSHBHGHSDBDGDSJBJGJS]
where PB is a value that implements a parser for Java, PG is a unary-function that extends a Java parser to parse generics, and PS is a unary-function that extends a Java parser to parse state machine specifications. HB is a unary-function that implements a harvester of comments on Java code. HG is a unary-function that implements a harvester of comments on generic code, and HS is a unary-function that implements a harvester of comments on state machine specifications, and so on.

To see how multiple equations are used to synthesize a program, again consider models U and W. A program F is described by two equations, one per model. We can write an equation for F in two different ways: referencing features by name or by their index position, such as:

    F=U1U2U4=i=1,2,4Ui   -- U expression of F
    
    F=W1W3=j=1,3Wi        -- W expression of F

The UW model defines how models U and W are implemented. Synthesizing program F involves projecting UW of unneeded columns and rows, and aggregating (a.k.a. tensor contraction):

    F=UW11UW21...UW33=i=1,2,3j=1,3UWi,j=j=1,3i=1,2,3UWi,j

A fundamental property of origami matrices, called orthogonality, is that the order in which dimensions are contracted does not matter. In the above equation, summing across the U dimension (index i) first or the W dimension (index j) first does not matter. Of course, orthogonality is a property that must be verified. Efficient (linear) algorithms have been developed to verify that origami matrices (or tensors/n-dimensional arrays) are orthogonal.[4] The significance of orthogonality is one of view consistency. Aggregating (contracting) along a particular dimension offers a 'view' of a program. Different views should be consistent: if one repairs the program's code in one view (or proves properties about a program in one view), the correctness of those repairs or properties should hold in all views.

In general, a product of a product line may be represented by n expressions, from n orthogonal and abstract GenVoca models G1 ... Gn. The Origami matrix (or cube or tensor) is an n-dimensional array A:

     A=G1×...×Gn=k=1nGk

A product H of this product line is formed by eliminating unnecessary rows, columns, etc. from A, and aggregating (contracting) the n-cube into a scalar:

    H=i1i2...inGi1,i2...in
Example. Recall program E and model T=[P,H,D,J]. E=D•H•P=T2•T1•T0. Similarly, E's representation in model L=[B,G,S] is E=S•B=L2•L0. Synthesizing E given Origami model TL is evaluating the following expression: E=i=2,0j=2,0TLi,j=j=2,0i=2,0TLi,j.

Applications

There are several of product line applications developed using Origami. Among them include:

More applications to be supplied.

See also

References

43 year old Petroleum Engineer Harry from Deep River, usually spends time with hobbies and interests like renting movies, property developers in singapore new condominium and vehicle racing. Constantly enjoys going to destinations like Camino Real de Tierra Adentro.