If you are not sure if the website you would like to visit is secure, you can verify it here. Enter the website address of the page and see parts of its content and the thumbnail images on this site. None (if any) dangerous scripts on the referenced page will be executed. Additionally, if the selected site contains subpages, you can verify it (review) in batches containing 5 pages.
favicon.ico: en.wikipedia.org/wiki/Feature-oriented_programming - Feature-oriented programming -.

site address: en.wikipedia.org/wiki/Feature-oriented_programming redirected to: en.wikipedia.org/wiki/Feature-oriented_programming

site title: Feature-oriented programming - Wikipedia

Our opinion (on Saturday 26 September 2026 13:27:38 UTC):

GREEN status (no comments) - no comments
After content analysis of this website we propose the following hashtags:



Meta tags:

Headings (most frequently used words):

feature, oriented, programming, contents, history, genvoca, ahead, fomdd, metamodels, applications, see, also, references,

Text of the page (most frequently used words):
the (102), and (71), program (50), feature (39), are (34), features (25), that (25), for (23), #oriented (22), product (22), genvoca (22), programming (18), from (18), pdf (16), fosd (16), this (15), model (15), object (14), all (13), based (13), composition (13), tuple (13), ahead (13), tuples (13), lines (12), edit (12), where (12), with (11), design (11), each (11), representations (11), was (10), expression (10), software (10), generation (10), line (10), parser (10), language (9), grammar (9), function (9), which (9), delta (9), can (9), there (9), added (9), source (9), base (9), programs (9), models (8), logic (8), original (8), layers (8), wikipedia (7), page (7), example (7), nested (7), archived (7), functions (7), transformations (7), note (7), artifacts (7), tools (7), optimization (7), has (7), its (7), functional (6), driven (6), 2017 (6), objects (6), different (6), deltas (6), metamodels (6), above (6), diagram (6), fomdd (6), commuting (6), between (6), files (6), code (5), text (5), may (5), references (5), paradigm (5), value (5), structures (5), development (5), java (5), meta (5), ary (5), new (5), general (5), more (5), called (5), two (5), tool (5), one (5), not (5), bytecode (5), defined (5), composed (5), documentation (5), interactions (5), file (5), contents (4), search (4), using (4), non (4), multi (4), components (4), extensible (4), structured (4), concurrent (4), graph (4), query (4), class (4), path (4), hierarchical (4), see (4), compiler (4), displaystyle (4), aligned (4), adding (4), contains (4), whose (4), existing (4), were (4), when (4), derive (4), represents (4), right (4), figure (4), other (4), relationships (4), have (4), designs (4), read (4), functionality (4), layer (4), history (4), article (4), hide (4), move (4), sidebar (4), view (3), data (3), constraint (3), production (3), transformation (3), set (3), end (3), algebraic (3), level (3), application (3), independent (3), algebra (3), refinement (3), relational (3), systems (3), cubes (3), also (3), applications (3), expressions (3), aaa (3), ccc (3), substitution (3), suppose (3), three (3), identity (3), extension (3), ideas (3), target (3), starting (3), corresponds (3), should (3), another (3), then (3), possible (3), geodesic (3), cost (3), idea (3), javacc (3), javac (3), way (3), among (3), express (3), these (3), arrows (3), values (3), recursively (3), extends (3), modeled (3), changes (3), unary (3), semantics (3), into (3), directory (3), recent (3), compositions (3), links (3), sources (3), main (3), languages (2), toggle (2), table (2), legal (2), contact (2), about (2), privacy (2), policy (2), additional (2), terms (2), apply (2), use (2), articles (2), lacking (2), reliable (2), march (2), 2018 (2), category (2), retrieved (2), list (2), modifying (2), abstraction (2), inductive (2), automatic (2), metaprogramming (2), process (2), parallel (2), system (2), stack (2), probabilistic (2), description (2), english (2), modeling (2), comprehension (2), domain (2), reactive (2), free (2), types (2), total (2), higher (2), order (2), recursive (2), call (2), testing (2), incremental (2), featurehouse (2), automated (2), approach (2), propositional (2), formulas (2), s2cid (2), isbn (2), 1145 (2), doi (2), generative (2), case (2), study (2), portlets (2), wise (2), implementation (2), support (2), database (2), network (2), protocols (2), begin (2), bbb (2), simplification (2), operation (2), single (2), modify (2), consider (2), abstract (2), further (2), important (2), they (2), ways (2), through (2), consistent (2), fact (2), equivalent (2), results (2), directed (2), metric (2), need (2), time (2), some (2), paths (2), most (2), metaprogram (2), left (2), refine (2), derivations (2), relationship (2), similarly (2), expresses (2), principles (2), uniformity (2), scalability (2), states (2), treated (2), modified (2), levels (2), principle (2), elements (2), themselves (2), composes (2), vector (2), addition (2), element (2), members (2), second (2), term (2), decomposed (2), etc (2), here (2), mathematics (2), every (2), multiple (2), such (2), makefiles (2), subrepresentations (2), define (2), techniques (2), connection (2), namely (2), meaningful (2), combinations (2), codebase (2), evaluation (2), adds (2), elaborate (2), research (2), generations (2), been (2), top (2), learn (2), appearance (2), upload (2), log (2), create (2), account (2), donate (2), menu (2), add, topic, mobile, cookie, statement, statistics, developers, conduct, safety, contacts, disclaimers, available, under, site, you, agree, registered, trademark, profit, organization, wikimedia, foundation, inc, creative, commons, attribution, sharealike, license, rendered, parsoid, last, edited, august, 2026, utc, hidden, categories, https, org, index, php, title, oriented_programming, oldid, 1371634398, type, comparison, comparisons, lists, subjects, roles, literate, event, aspects, separation, concerns, template, symbolic, self, reflective, vibe, coding, demonstration, bayesian, synthesis, stage, metalinguistic, hygienic, macro, interactive, homoiconicity, generic, dynamic, attribute, concurrency, service, relativistic, partitioned, global, address, space, organic, computing, multitier, macroprogramming, choreographic, mutual, exclusion, actor, visual, pattern, rewriting, templating, tactile, simulation, theoretic, scripting, scientific, quantum, filters, pipes, natural, low, interface, user, differentiable, spacecraft, command, action, automata, array, dsl, specific, ontology, nondeterministic, answer, abductive, synchronous, streams, signals, flow, dataflow, monad, concatenative, applicative, point, style, dependent, gadts, strict, purely, partial, anonymous, declarative, uniform, syntax, persistent, immutable, agent, prototype, invariant, contract, large, small, procedural, modular, block, jackson, imperative, paradigms, test, guaranteeing, syntactic, correctness, variants, superimposition, grammars, trujillo, salvador, azanza, maider, díaz, óscar, october, 2007, 114, 236715, 9781595938558, 1289971, 1289990, 105, proceedings, 6th, international, conference, component, engineering, scaling, step, 2003, 2015, fresh, look, 1979, 8537523, 9780897910019, 582095, 582099, access, selection, databases, reusable, very, high, dimensional, origami, svg, web, preprocessors, distributed, army, fire, simulator, correspond, null, constructed, instances, simple, metamodel, discusses, concept, concepts, inspired, theory, least, reasons, possibility, optimizing, geodesics, specify, constructing, chain, proven, demonstrated, chains, map, yield, either, bug, wrong, diagrams, ending, hard, steiner, tree, problem, monetary, measured, peak, memory, requirements, power, consumption, informal, like, ease, explanation, combination, understood, appreciated, context, objective, execution, generates, potential, traversing, arrow, cheapest, shortest, efficient, produces, given, tbinom, fundamental, property, lower, upper, while, refines, combines, capture, lockstep, update, but, downward, horizontal, shows, mda, architecture, mdd, derivational, suite, jak, exhibits, both, next, include, cide, presented, concretely, expose, same, evidenced, artifact, abstractions, uniformly, gives, rise, nesting, recurses, summarizing, them, essence, compose, illustrate, rules, tokens, classes, methods, made, computed, preserving, extending, altering, neutral, represent, possibilities, occurs, extensions, refinements, hierarchically, declarations, initialization, blocks, terminal, bnf, html, depicted, shown, denote, projections, mappings, implements, directories, containing, subdirectories, generalized, first, revealed, internal, structure, parsers, representation, too, hierarchy, particular, equations, originally, implemented, preprocessor, advanced, technique, showed, collaboration, mixin, ifdef, endif, formulation, only, empty, suggests, interpretation, complex, superimposing, simpler, yet, reformulation, associative, although, reason, monoid, superposition, symmetric, translated, graphical, stepwise, emphasizes, simplicity, understandability, key, construction, begins, finally, collection, created, defines, denotes, named, extend, names, genesis, avoca, compositional, defining, portmanteau, third, focussed, additionally, could, generated, derived, others, sections, below, described, developed, provided, four, originated, telecommunications, later, coined, work, exposed, require, adapted, over, equated, increment, recognized, outgrowth, family, unique, since, evolved, modularity, analyses, arose, out, late, 1980s, previously, produced, surprisingly, compact, elementary, fit, bill, produce, illustrates, stacking, bottom, notations, used, stacks, spls, fop, computer, how, remove, message, please, improve, jstor, scholar, books, newspapers, news, find, secondary, tertiary, relies, excessively, primary, encyclopedia, wikidata, item, projects, printable, version, download, print, export, switch, legacy, get, shortened, url, cite, information, permanent, link, related, what, actions, talk, українська, српски, srpski, deutsch, personal, special, pages, community, portal, help, contribute, random, current, events, navigation, jump, content,


Text of the page (random words):
here query evaluation programs were defined as relational algebra expressions and query optimization was expression optimization 2 a software product line is a family of programs where each program is defined by a unique composition of features fosd has since evolved into the study of feature modularity tools analyses and design techniques to support feature based program generation the second generation of fosd research was on feature interactions which originated in telecommunications later the term feature oriented programming was coined 3 this work exposed interactions between layers interactions require features to be adapted when composed with other features a third generation of research focussed on the fact that every program has multiple representations e g source makefiles documentation etc and adding a feature to a program should elaborate each of its representations so that all are consistent additionally some of representations could be generated or derived from others in the sections below the mathematics of the three most recent generations of fosd namely genvoca 1 ahead 4 and fomdd 5 6 are described and links to product lines that have been developed using fosd tools are provided also four additional results that apply to all generations of fosd are fosd metamodels fosd program cubes and fosd feature interactions genvoca edit genvoca a portmanteau of the names genesis and avoca 1 is a compositional paradigm for defining programs of product lines base programs are 0 ary functions or transformations called values f base program with feature f h base program with feature h and features are unary functions transformations that elaborate modify extend refine a program i x adds feature i to program x j x adds feature j to program x where denotes function composition the design of a program is a named expression e g p 1 j f program p 1 has features j and f p 2 j h program p 2 has features j and h p 3 i j h program p 3 has features i j and h a genvoca model of a domain or software product line is a collection of base programs and features see metamodels and program cubes the programs expressions that can be created defines a product line expression optimization is program design optimization and expression evaluation is program generation note genvoca is based on the stepwise development of programs a process that emphasizes design simplicity and understandability which are key to program comprehension and automated program construction consider program p 3 above it begins with base program h then feature j is added read the functionality of feature j is added to the codebase of h and finally feature i is added read the functionality of feature i is added to the codebase of j h note not all combinations of features are meaningful feature models which can be translated into propositional formulas are graphical representations that define legal combinations of features 7 note a more recent formulation of genvoca is symmetric there is only one base program 0 the empty program and all features are unary functions this suggests the interpretation that genvoca composes program structures by superposition the idea that complex structures are composed by superimposing simpler structures 8 9 yet another reformulation of genvoca is as a monoid a genvoca model is a set of features with a composition operation composition is associative and there is an identity element namely 1 the identity function although all compositions are possible not all are meaningful that s the reason for feature models genvoca features were originally implemented using c preprocessor ifdef feature endif techniques a more advanced technique called mixin layers showed the connection of features to object oriented collaboration based designs ahead edit algebraic hierarchical equations for application design ahead 4 generalized genvoca in two ways first it revealed the internal structure of genvoca values as tuples every program has multiple representations such as source documentation bytecode and makefiles a genvoca value is a tuple of program representations in a product line of parsers for example a base parser f is defined by its grammar g f java source s f and documentation d f parser f is modeled by the tuple f g f s f d f each program representation may have subrepresentations and they too may have subrepresentations recursively in general a genvoca value is a tuple of nested tuples that define a hierarchy of representations for a particular program hierarchical relationships among program artifacts example suppose terminal representations are files in ahead grammar g f corresponds to a single bnf file source s f corresponds to a tuple of java files c 1 c n and documentation d f is a tuple of html files h 1 h k a genvoca value nested tuples can be depicted as a directed graph the graph for parser f is shown in the figure to the right arrows denote projections i e mappings from a tuple to one of its components ahead implements tuples as file directories so f is a directory containing file g f and subdirectories s f and d f similarly directory s f contains files c 1 c n and directory df contains files h 1 h k note files can be hierarchically decomposed further each java class can be decomposed into a tuple of members and other class declarations e g initialization blocks etc the important idea here is that the mathematics of ahead are recursive second ahead expresses features as nested tuples of unary functions called deltas deltas can be program refinements semantics preserving transformations extensions semantics extending transformations or interactions semantics altering transformations we use the neutral term delta to represent all of these possibilities as each occurs in fosd to illustrate suppose feature j extends a grammar by δ g j new rules and tokens are added extends source code by δ s j new classes and members are added and existing methods are modified and extends documentation by δ d j the tuple of deltas for feature j is modeled by j δ g j δ s j δ d j which we call a delta tuple elements of delta tuples can themselves be delta tuples example δ s j represents the changes that are made to each class in s f by feature j i e δ s j δ c 1 δ c n the representations of a program are computed recursively by nested vector addition the representations for parser p 2 whose genvoca expression is j f are p 2 j f genvoca expression δ g j δ s j δ d j g f s f d f substitution δ g j g f δ s j s f δ d j d f compose tuples element wise that is the grammar of p 2 is the base grammar composed with its extension δ g j g f the source of p 2 is the base source composed with its extension δ s j s f and so on as elements of delta tuples can themselves be delta tuples composition recurses e g δ s j s f δ c 1 δ c n c 1 c n δ c 1 c 1 δ c n c n summarizing genvoca values are nested tuples of program artifacts and features are nested delta tuples where recursively composes them by vector addition this is the essence of ahead the ideas presented above concretely expose two fosd principles the principle of uniformity states that all program artifacts are treated and modified in the same way this is evidenced by deltas for different artifact types above the principle of scalability states all levels of abstractions are treated uniformly this gives rise to the hierarchical nesting of tuples above the original implementation of ahead is the ahead tool suite and jak language which exhibits both the principles of uniformity and scalability next generation tools include cide 10 and featurehouse 11 fomdd edit derivational and refinement relationships among program artifacts feature oriented model driven design fomdd 5 6 combines the ideas of ahead with model driven design mdd a k a model driven architecture mda ahead functions capture the lockstep update of program artifacts when a feature is added to a program but there are other functional relationships among program artifacts that express derivations for example the relationship between a grammar g f and its parser source s f is defined by a compiler compiler tool e g javacc similarly the relationship between java source s f and its bytecode b f is defined by the javac compiler a commuting diagram expresses these relationships objects are program representations downward arrows are derivations and horizontal arrows are deltas the figure to the right shows the commuting diagram for program p 3 i j h g 3 s 3 b 3 a fundamental property of a commuting diagram is that all paths between two objects are equivalent for example one way to derive the bytecode b 3 of parser p 3 lower right object in the figure to the right from grammar g h of parser h upper left object is to derive the bytecode b h and refine to b 3 while another way refines g h to g 3 and then derive b 3 where represents delta composition and is function or tool application b 3 δ b j δ b i javacc javac g h javac javacc δ g i δ g j g h there are 4 2 displaystyle tbinom 4 2 possible paths to derive the bytecode b 3 of parser p 3 from the grammar g h of parser h each path represents a metaprogram whose execution generates the target object b 3 from the starting object g f there is a potential optimization traversing each arrow of a commuting diagram has a cost the cheapest i e shortest path between two objects in a commuting diagram is a geodesic which represents the most efficient metaprogram that produces the target object from a given object note a cost metric need not be a monetary value cost may be measured in production time peak or total memory requirements power consumption or some informal metric like ease of explanation or a combination of the above e g multi objective optimization the idea of a geodesic is general and should be understood and appreciated from this more general context note it is possible for there to be m starting objects and n ending objects in a geodesic when m 1 and n 1 this is the directed steiner tree problem which is np hard commuting diagrams are important for at least two reasons 1 there is the possibility of optimizing the generation of artifacts e g geodesics and 2 they specify different ways of constructing a target object from a starting object 5 12 a path through a diagram corresponds to a tool chain for an fomdd model to be consistent it should be proven or demonstrated through testing that all tool chains that map one object to another in fact yield equivalent results if this is not the case then either there is a bug in one or more of the tools or the fomdd model is wrong note the above ideas were inspired by category theory 5 6 metamodels edit feature oriented software development fosd is a general paradigm for software generation where a model of a product line is a tuple of 0 ary and 1 ary functions program transformations this page discusses a more abstract concept of models of product lines of product lines pl 2 called metamodels and product lines of product lines of product lines called meta metamodels pl 3 and further abstract concepts a metamodel is a model whose instances are models 4 a genvoca model of a product line is a tuple whose components are features 0 ary or 1 ary functions an extension a k a delta or refinement of a model is a meta feature which is a tuple of deltas that can modify an existing product line by modifying existing features and adding new features as a simple example consider genvoca model m that contains three features a c m a b c displaystyle m a b c suppose meta model mm contains three meta features aaa ccc each of which is a tuple with a single non identity feature m m a a a b b b c c c a 0 0 0 b 0 0 0 c displaystyle begin aligned mm aaa bbb ccc a 0 0 0 b 0 0 0 c end aligned where 0 is the null feature model m is constructed by adding the meta features of mm where is the composition operation see fosd m a a a b b b c c c expression a 0 0 0 b 0 0 0 c substitution a 0 0 0 b 0 0 0 c composition a b c simplification where 0 x x 0 x displaystyle begin aligned m aaa bbb ccc text expression a 0 0 0 b 0 0 0 c text substitution a 0 0 0 b 0 0 0 c text composition a b c text simplification where 0 x x 0 x end aligned mm models a product line of product lines pl 2 that is different mm expressions correspond to genvoca models of different product lines applications edit network protocols extensible database systems data structures distributed army fire support simulator production system compiler graph product line extensible java preprocessors web portlets svg applications see also edit fosd origami fosd program cubes multi dimensional product lines very high level programming language references edit 1 2 3 design and implementation of hierarchical software systems with reusable components pdf archived from the original pdf on 2017 07 06 access path selection in relational databases 30 may 1979 pp 23 34 doi 10 1145 582095 582099 isbn 9780897910019 s2cid 8537523 feature oriented programming a fresh look at objects archived from the original on 2003 08 03 retrieved 2015 12 16 1 2 3 scaling step wise refinement pdf archived from the original pdf on 2017 07 06 1 2 3 4 feature oriented model driven development a case study for portlets pdf archived from the original pdf on 2017 07 06 1 2 3 trujillo salvador azanza maider díaz óscar october 2007 generative metaprogramming proceedings of the 6th international conference on generative programming and component engineering pp 105 114 doi 10 1145 1289971 1289990 isbn 9781595938558 s2cid 236715 feature models grammars and propositional formulas pdf archived from the original pdf on 2017 07 06 an algebra for features and feature composition pdf superimposition a language independent approach to software composition pdf guaranteeing syntactic correctness for all product line variants a language independent approach pdf archived from the original pdf on 2017 07 06 featurehouse language independent automated software composition pdf testing software product lines using incremental test generation pdf archived from the original pdf on 2017 07 06 v t e programming paradigms imperative structured jackson structures block structured modular non structured procedural programming in the large and in the small design by contract invariant based nested function object oriented class based prototype based object based agent immutable object persistent uniform function call syntax declarative functional recursive anonymous function partial application higher order higher order function purely functional total strict gadts dependent types functional logic point free style expression oriented applicative concatenative function level value level monad dataflow flow based reactive functional reactive signals streams synchronous logic abductive logic answer set constraint constraint logic inductive logic nondeterministic ontology probabilistic logic query domain specific language dsl algebraic modeling array automata based action command spacecraft differentiable end...
Thumbnail images (randomly selected): * Images may be subject to copyright.GREEN status (no comments)
  • Wikipedia
  • The Free Encyclopedia
  • vertical stacking of laye...
  • \displaystyle \tbinom ...
  • \displaystyle M=[a,b,c]
  • \displaystyle \begin al...
  • \displaystyle \begin al...
  • Wikimedia Foundation
  • Powered by MediaWiki

Verified site has: 228 subpage(s). Do you want to verify them? Verify pages:

1-5 6-10 11-15 16-20 21-25 26-30 31-35 36-40 41-45 46-50
51-55 56-60 61-65 66-70 71-75 76-80 81-85 86-90 91-95 96-100
101-105 106-110 111-115 116-120 121-125 126-130 131-135 136-140 141-145 146-150
151-155 156-160 161-165 166-170 171-175 176-180 181-185 186-190 191-195 196-200
201-205 206-210 211-215 216-220 221-225 226-228


Top 50 hastags from of all verified websites.

Supplementary Information (add-on for SEO geeks)*- See more on header.verify-www.com

Header

HTTP/1.1 301 Moved Permanently
content-length 0
location htt????/en.wikipedia.org/wiki/Feature-oriented_programming
server HAProxy
x-cache cp6011 int
x-cache-status int-tls
connection close
HTTP/2 200
date Sat, 26 Sep 2026 13:27:39 GMT
server mw-web.eqiad.main-5fb6d6bf94-tj26s
x-content-type-options nosniff
content-language en
accept-ch
reporting-endpoints csp-report-to-endpoint= /w/api.php?action=cspreport&format=json ;
content-security-policy script-src unsafe-eval blob: self meta.wikimedia.org *.wikimedia.org *.wikipedia.org *.wikinews.org *.wiktionary.org *.wikibooks.org *.wikiversity.org *.wikisource.org wikisource.org *.wikiquote.org *.wikidata.org *.wikifunctions.org *.wikivoyage.org *.mediawiki.org mediawiki.org wikimedia.org *.wmflabs.org *.wmcloud.org *.toolforge.org wss://*.toolforge.org *.jsdelivr.net unpkg.com cdnjs.cloudflare.com raw.githubusercontent.com *.github.com code.jquery.com cdn.mathjax.org use.typekit.net fonts.cdnfonts.com use.fontawesome.com i.ytimg.com rsms.me doi.org localhost htt????/localhost:* htt???/localhost:* wss://localhost:* ws://localhost:* *.google.com *.gstatic.com *.googleapis.com *.translate.yandex.net yastatic.net ya.ru radically.github.io cdn.sammdot.ca cdn.fontshare.com viaf.org publicai-proxy.alaexis.workers.dev iiif.archive.org api.flickr.com live.staticflickr.com api.anthropic.com api.openai.com api.publicai.co catalogo.pusc.it parsifal.urbe.it opac.sbn.it overpass-api.de api.openrouteservice.org archive.org *.openstreetmap.org *.waymarkedtrails.org *.thunderforest.com registry.ipe.wiki analytics.ipe.wiki qlever.dev app.goacoustic.com wikipedia-archive.ourworldindata.org api.inaturalist.org inaturalist-open-data.s3.amazonaws.com validator.w3.org db.onlinewebfonts.com fontlibrary.org unsafe-inline auth.wikimedia.org; default-src self data: blob: upload.wikimedia.org thumb.wikimedia.org htt????/commons.wikimedia.org meta.wikimedia.org *.wikimedia.org *.wikipedia.org *.wikinews.org *.wiktionary.org *.wikibooks.org *.wikiversity.org *.wikisource.org wikisource.org *.wikiquote.org *.wikidata.org *.wikifunctions.org *.wikivoyage.org *.mediawiki.org mediawiki.org wikimedia.org *.wmflabs.org *.wmcloud.org *.toolforge.org wss://*.toolforge.org *.jsdelivr.net unpkg.com cdnjs.cloudflare.com raw.githubusercontent.com *.github.com code.jquery.com cdn.mathjax.org use.typekit.net fonts.cdnfonts.com use.fontawesome.com i.ytimg.com rsms.me doi.org localhost htt????/localhost:* htt???/localhost:* wss://localhost:* ws://localhost:* *.google.com *.gstatic.com *.googleapis.com *.translate.yandex.net yastatic.net ya.ru radically.github.io cdn.sammdot.ca cdn.fontshare.com viaf.org publicai-proxy.alaexis.workers.dev iiif.archive.org api.flickr.com live.staticflickr.com api.anthropic.com api.openai.com api.publicai.co catalogo.pusc.it parsifal.urbe.it opac.sbn.it overpass-api.de api.openrouteservice.org archive.org *.openstreetmap.org *.waymarkedtrails.org *.thunderforest.com registry.ipe.wiki analytics.ipe.wiki qlever.dev app.goacoustic.com wikipedia-archive.ourworldindata.org api.inaturalist.org inaturalist-open-data.s3.amazonaws.com validator.w3.org db.onlinewebfonts.com fontlibrary.org en.wikibooks.org en.wikinews.org en.wikiquote.org en.wikisource.org en.wikiversity.org en.wikivoyage.org en.wiktionary.org www.mediawiki.org commons.wikimedia.org foundation.wikimedia.org incubator.wikimedia.org species.wikimedia.org wikimania.wikimedia.org www.wikidata.org www.wikifunctions.org auth.wikimedia.org; style-src self data: blob: upload.wikimedia.org thumb.wikimedia.org htt????/commons.wikimedia.org meta.wikimedia.org *.wikimedia.org *.wikipedia.org *.wikinews.org *.wiktionary.org *.wikibooks.org *.wikiversity.org *.wikisource.org wikisource.org *.wikiquote.org *.wikidata.org *.wikifunctions.org *.wikivoyage.org *.mediawiki.org mediawiki.org wikimedia.org *.wmflabs.org *.wmcloud.org *.toolforge.org wss://*.toolforge.org *.jsdelivr.net unpkg.com cdnjs.cloudflare.com raw.githubusercontent.com *.github.com code.jquery.com cdn.mathjax.org use.typekit.net fonts.cdnfonts.com use.fontawesome.com i.ytimg.com rsms.me doi.org localhost htt????/localhost:* htt???/localhost:* wss://localhost:* ws://localhost:* *.google.com *.gstatic.com *.googleapis.com *.translate.yandex.net yastatic.net ya.ru radically.github.io cdn.sammdot.ca cdn.fontshare.com viaf.org publicai-proxy.alaexis.workers.dev iiif.archive.org api.flickr.com live.staticflickr.com api.anthropic.com api.openai.com api.publicai.co catalogo.pusc.it parsifal.urbe.it opac.sbn.it overpass-api.de api.openrouteservice.org archive.org *.openstreetmap.org *.waymarkedtrails.org *.thunderforest.com registry.ipe.wiki analytics.ipe.wiki qlever.dev app.goacoustic.com wikipedia-archive.ourworldindata.org api.inaturalist.org inaturalist-open-data.s3.amazonaws.com validator.w3.org db.onlinewebfonts.com fontlibrary.org unsafe-inline ; object-src none ; report-uri /w/api.php?action=cspreport&format=json; report-to csp-report-to-endpoint
last-modified Wed, 23 Sep 2026 05:11:34 GMT
content-type text/html; charset=UTF-8
content-encoding gzip
age 0
accept-ranges bytes
x-cache cp6014 miss, cp6009 miss
x-cache-status miss
strict-transport-security max-age=106384710; includeSubDomains; preload
report-to group : wm_nel , max_age : 604800, endpoints : [ url : htt????/intake-logging.wikimedia.org/v1/events?stream=w3c.reportingapi.network_error&schema_uri=/w3c/reportingapi/network_error/1.0.0 ]
nel report_to : wm_nel , max_age : 604800, failure_fraction : 0.05, success_fraction : 0.0
set-cookie WMF-Last-Access=26-Sep-2026;Path=/;HttpOnly;secure;Expires=Wed, 28 Oct 2026 12:00:00 GMT
set-cookie WMF-Last-Access-Global=26-Sep-2026;Path=/;Domain=.wikipedia.org;HttpOnly;secure;Expires=Wed, 28 Oct 2026 12:00:00 GMT
set-cookie WMF-DP=674;Path=/;HttpOnly;secure;Expires=Sun, 27 Sep 2026 00:00:00 GMT
x-client-ip 5.135.42.194
cache-control private, s-maxage=0, max-age=0, must-revalidate, no-transform
vary Accept-Encoding,X-Subdomain,Cookie,Authorization,User-Agent
set-cookie GeoIP=FR:::48.86:2.34:v4; Path=/; secure; Domain=.wikipedia.org
set-cookie NetworkProbeLimit=0.001;Path=/;Secure;SameSite=None;Max-Age=3600
set-cookie WMF-Uniq=3i9J9GJDK1V6DSxw4aq4-QPnAAAAAFvdj6f9uMh9tb27jSIpSkgKx5Xxbg168pXz;Domain=.wikipedia.org;Path=/;HttpOnly;secure;SameSite=None;Expires=Sun, 26 Sep 2027 00:00:00 GMT
x-request-id 9ee70ece-47e1-4ffd-8db0-388ca658e111
x-analytics
server-timing WMF-Uniq;desc= donor-status-consent=control; ,co_id;desc= 3922907726

Meta Tags

title="Feature-oriented programming - Wikipedia"
charset="UTF-8"
name="ResourceLoaderDynamicStyles" content=""
name="generator" content="MediaWiki 1.47.0-wmf.21"
name="referrer" content="origin"
name="referrer" content="origin-when-cross-origin"
name="robots" content="max-image-preview:standard"
name="format-detection" content="telephone=no"
name="viewport" content="width=1120"
property="og:title" content="Feature-oriented programming - Wikipedia"
property="og:type" content="website"
property="mw:PageProp/toc" id="mwCw" data-mw='{"autoGenerated":true}'

Load Info

page size173986
load time (s)0.570649
redirect count1
speed download58535
server IP 185.15.58.224
* all occurrences of the string "http://" have been changed to "htt???/"