The concept-oriented paradigm is a direction in computer science, which follows a set of the following fundamental principles: * Objects are living in space with complex structure and the space plays a crucial role in defining the system behaviour and functionality. * Representation and access are the most important functions of space, which are executed each time access request passes the space border * Objects are represented by means of references created for them by the space to be used outside An elementary part of space is referred to as a concept, which generalizes such terms as class in programming, table/relation in databases, scope/environment in design. These principles are used to develop more concrete directions such as ConceptOrientedProgramming, ConceptOrientedModel and ConceptOrientedDesign. More information on the concept-oriented paradigm can be found at the concept-oriented portal here http://conceptoriented.org and specifically in the concept-oriented FAQ here http://conceptoriented.org/faqs/co-faq.html. ------- Some related disciplines include ObjectCapabilityModel (which achieves security via interface and ProxyPattern, esp. applicable to ActorsModel), KellCalculus ('kell' is first-class locality atop PiCalculus, hierarchical, intercepts messages to and from 'child' kells in the same manner as ConceptOrientedProgramming with its spaces). Neither of these definitions formalize the system of external names or references to local objects in the same manner as does ConceptOrientedProgramming. Implementation may be a bit difficult... a collection of '''Button''' concepts might have an enormous variety of different '''Identifier''' types, each of which would have their own semantics associating them with an external space and the button within it. ---- This splitting of meaning into objects and concepts sounds interesting, especially that bit about the representation and access of an object being dependent on the concept (I take it to a synonym for ''context''). But I am severely missing examples, anything to see how this is actually used. Everything on that website is just plain self-referential. Without any concrete connections or examples or a comparison of OO with matching CO code) I just cannot get a grasp of what is really meant. -- GunnarZarncke ---- ---- '''[WalledGarden Discussion]''' ---- Like GunnarZarncke I'm piqued but perplexed by the circular definitions. I actually ended up here because I was looking for more information about ConceptProgramming and a search for Concept lured me into this WalledGarden. I did also find ConceptProgramming so was not completely thwarted. ConceptProgramming is explained in detail at http://xlr.sourceforge.net/concept/top.html. From AlexandrSavinov (or someone else that understands ConceptOrientedProgramming), I'd like to see comparisons that illustrate the relationship between ConceptOrientedProgramming and the following: ConceptProgramming, ObjectOrientedProgramming, AspectOrientedProgramming, DesignPatterns, ... etc -- BrandonCsSanders ''From what I've seen, ConceptProgramming and ConceptOrientedProgramming (the ConceptOriented WalledGarden) are '''not''' related at all. -- JeffGrigg'' ---- Is there a tie in between this work and CppAndConcepts? It might be a question of the implementation. In that case it will cease to be a WalledGarden. -- JohnFletcher No, there is no tie between ConceptOrientedProgramming (which formalizes some notion of distinct '''spaces''' by formalizing address/identity of objects and offering mechanisms to capture messages at space 'borders') and CppAndConcepts (which provides advanced features for checking template applications, making error descriptions more tractable, and optimizing the adaptation of template-driven algorithm based on template-provided traits of the underlying structures over which those algorithms operate). The two are using the word '''Concept''' in completely disparate ways. ''Thanks'' -- JohnFletcher ---- Some related concepts(ideas): * ConceptsTechniquesAndModelsOfComputerProgramming * StructureAndInterpretationOfComputerPrograms * '''''I''''''fYouLikeItYouMustUnderstandIt''''' (or perhaps) IfYouDontLikeItYouDontUnderstandIt ''How are these related?'' ---- CategoryInformationEngineering