Role (computer Science)
Role-oriented programming as a form of computer programming aims at expressing things in terms that are analogous to human conceptual understanding of the world. This should make programs easier to understand and maintain. The main idea of role-oriented programming is that humans think in terms of roles. This claim is often backed up by examples of social relations. For example, a student attending a class and the same student at a party are the same person, yet that person plays two different roles. In particular, the interactions of this person with the outside world depend on his current role. The roles typically share features, e.g., the intrinsic properties of being a person. This sharing of properties is often handled by the delegation mechanism. In the older literature and in the field of databases, it seems that there has been little consideration for the context in which roles interplay with each other. Such a context is being established in newer role- and aspect-orien ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
![]() |
Programming Language
A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually defined by a formal language. Languages usually provide features such as a type system, Variable (computer science), variables, and mechanisms for Exception handling (programming), error handling. An Programming language implementation, implementation of a programming language is required in order to Execution (computing), execute programs, namely an Interpreter (computing), interpreter or a compiler. An interpreter directly executes the source code, while a compiler produces an executable program. Computer architecture has strongly influenced the design of programming languages, with the most common type (imperative languages—which implement operations in a specified order) developed to perform well on the popular von Neumann architecture. ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
Trygve Reenskaug
Trygve Mikkjel Heyerdahl Reenskaug (21 June 1930 – 14 June 2024) was a Norwegian computer scientist and professor emeritus of the University of Oslo. He formulated the model–view–controller (MVC) pattern for graphical user interface (GUI) software design in 1979 while visiting the Xerox Palo Alto Research Center (PARC). His first major software project, "Autokon," produced a successful computer-aided design – computer-aided manufacturing (CAD/CAM) program which was first used in 1963, and continued in use by shipyards worldwide for more than 30 years. Reenskaug described his early Smalltalk and object-oriented programming conceptual efforts as follows: Reenskaug was extensively involved in research into object-oriented methods and developed the Object Oriented Role Analysis and Modeling (OOram) and the OOram tool in 1983. He founded the information technology company Taskon in 1986, which developed tools based on OOram. The OOram ideas matured and evolved substantiall ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Traits (computer Science)
In computer programming, a trait is a language concept that represents a set of methods that can be used to extend the functionality of a class. Rationale In object-oriented programming, behavior is sometimes shared between classes which are not related to each other. For example, many unrelated classes may have methods to serialize objects to JSON. Historically, there have been several approaches to solve this without duplicating the code in every class needing the behavior. Other approaches include multiple inheritance and mixins, but these have drawbacks: the behavior of the code may unexpectedly change if the order in which the mixins are applied is altered, or if new methods are added to the parent classes or mixins. Traits solve these problems by allowing classes to use the trait and get the desired behavior. If a class uses more than one trait, the order in which the traits are used does not matter. The methods provided by the traits have direct access to the data of t ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Subject-oriented Programming
In computing, subject-oriented programming is an object-oriented software paradigm in which the state (fields) and behavior (methods) of objects are not seen as intrinsic to the objects themselves, but are provided by various subjective perceptions ("subjects") of the objects. The term and concepts were first published in September 1993 in a conference paper which was later recognized as being one of the three most influential papers to be presented at the conference between 1986 and 1996. As illustrated in that paper, an analogy is made with the contrast between the philosophical views of Plato and Kant with respect to the characteristics of "real" objects, but applied to software ones. For example, while we may all perceive a tree as having a measurable height, weight, leaf-mass, etc., from the point of view of a bird, a tree may also have measures of relative value for food or nesting purposes, or from the point of view of a tax-assessor, it may have a certain taxable value in a g ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Object Oriented Role Analysis Method
Object-oriented role analysis and modeling (OOram) is a method, based on the concept of ''role'', for performing object-oriented modeling. (Presented at OOPSLA 1996 Workshop: ''Exploration of Framework Design Principles'') Originally (1989) coined ''Object Oriented Role Analysis, Synthesis and Structuring'' (OORASS), the method focuses on describing patterns of interaction without connecting the interaction to particular objects/instances. OOram was originally developed by Trygve Reenskaug (1996), a professor at the University of Oslo and the founder of the Norwegian IT company Taskon. The use of "roles" in OOram is similar in application to that of agent-oriented programming. Enterprise models created according to OOram may have a number of views, with each view presenting certain aspects of a model.Terje Totland (1997)5.2.8 Object-Oriented role analysis and modeling (OOram)Thesis, Norwegian University of Science and Technology (NTNU), Trondheim. The following ten views are propo ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Data, Context And Interaction
Data, context, and interaction (DCI) is a paradigm used in computer software to program systems of communicating objects. Its goals are: * To improve the readability of object-oriented code by giving system behavior first-class status; * To cleanly separate code for rapidly changing system behavior (what a system ''does'') versus slowly changing domain knowledge (what a system ''is''), instead of combining both in one class interface; * To help software developers reason about system-level state and behavior instead of only object state and behavior; * To support an object style of thinking that is close to programmers' mental models, rather than the class style of thinking that overshadowed object thinking early in the history of object-oriented programming languages. The paradigm separates the domain model (data) from use cases (context) and Roles that objects play (interaction). DCI is complementary to model–view–controller (MVC). MVC as a pattern language is still used to se ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Aspect-oriented Programming
In computing, aspect-oriented programming (AOP) is a programming paradigm that aims to increase modularity by allowing the separation of cross-cutting concerns. It does so by adding behavior to existing code (an advice) ''without'' modifying the code, instead separately specifying which code is modified via a " pointcut" specification, such as "log all function calls when the function's name begins with 'set. This allows behaviors that are not central to the business logic (such as logging) to be added to a program without cluttering the code of core functions. AOP includes programming methods and tools that support the modularization of concerns at the level of the source code, while aspect-oriented software development refers to a whole engineering discipline. Aspect-oriented programming entails breaking down program logic into cohesive areas of functionality (so-called ''concerns''). Nearly all programming paradigms support some level of grouping and encapsulation of conce ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
![]() |
Raku (programming Language)
Raku is a member of the Perl family of programming languages. Formerly named Perl 6, it was renamed in October 2019. Raku introduces elements of many modern and historical languages. Compatibility with Perl was not a goal, though a compatibility mode is part of the specification. The design process for Raku began in 2000. History The Raku design process was first announced on 19 July 2000, on the fourth day of that year's O'Reilly Open Source Convention, Perl Conference, by Larry Wall in his ''Perl#State of the Onion, State of the Onion 2000'' talk. At that time, the primary goals were to remove "historical warts" from the language; "easy things should stay easy, hard things should get easier, and impossible things should get hard"; and a general cleanup of the internal design and application programming interfaces (APIs). The process began with a series of Request for Comments (RFCs). This process was open to all contributors, and left no aspect of the language closed to chang ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
Moose (Perl)
Moose is an extension of the object system of the Perl programming language. Its stated purpose is to bring modern object-oriented programming language features to Perl 5, and to make object-oriented Perl programming more consistent and less tedious. Features Moose is built on Class::MOP, a metaobject protocol (MOP). Using the MOP, Moose provides complete type introspection for all Moose-using classes. Classes Moose allows a programmer to create classes: * A class has zero or more attributes. * A class has zero or more methods. * A class has zero or more superclasses (a.k.a. parent classes). A class inherits from its superclass(es). Moose supports multiple inheritance. * A class has zero or more method modifiers. These modifiers can apply to its own methods, methods that are inherited from its ancestors or methods that are provided by roles. * A class does zero or more roles (also known as traits in other programming languages). * A class has a constructor and a destructor ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
JavaScript
JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior. Web browsers have a dedicated JavaScript engine that executes the client code. These engines are also utilized in some servers and a variety of apps. The most popular runtime system for non-browser usage is Node.js. JavaScript is a high-level, often just-in-time–compiled language that conforms to the ECMAScript standard. It has dynamic typing, prototype-based object-orientation, and first-class functions. It is multi-paradigm, supporting event-driven, functional, and imperative programming styles. It has application programming interfaces (APIs) for working with text, dates, regular expressions, standard data structures, and the Document Object Model (DOM). The ECMAScript standard does not include any input/output (I/O), such as netwo ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |