HOME





Object-Oriented Software Construction
''Object-Oriented Software Construction'', also called OOSC, is a book by Bertrand Meyer, widely considered a foundational text of object-oriented programming. The first edition was published in 1988; the second edition, extensively revised and expanded (more than 1300 pages), in 1997. Many translations are available including Dutch (first edition only), French (1+2), German (1), Italian (1), Japanese (1+2), Persian (1), Polish (2), Romanian (1), Russian (2), Serbian (2), and Spanish (2). The book has been cited thousands of times. , The Association for Computing Machinery's (ACM) ''Guide to Computing Literature'' counts 2,233 citations, for the second edition alone in computer science journals and technical books; Google Scholar lists 7,305 citations. , the book is number 35 in the list of all-time most cited works (books, articles, etc.) in computer science literature, with 1,260 citations. The book won a Jolt award in 1994. The second edition is available online free. ''Unle ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Bertrand Meyer
Bertrand Meyer (; ; born 21 November 1950) is a French academic, author, and consultant in the field of computer languages. He created the Eiffel programming language and the concept of design by contract. Education and academic career Meyer received a master's degree in engineering from the École Polytechnique in Paris, a second master's degree from Stanford University, and a PhD from the Université de Nancy. He had a technical and managerial career for nine years at Électricité de France, and for three years was a member of the faculty of the University of California, Santa Barbara. From 2001 to 2016, he was professor of software engineering at ETH Zürich, the Swiss Federal Institute of Technology, where he pursued research on building trusted components (reusable software elements) with a guaranteed level of quality. He was Chair of the ETH Computer Science department from 2004 to 2006 and for 13 years (2003–2015) taught the Introduction to Programming course t ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Persistence (computer Science)
In computer science, persistence refers to the characteristic of State (computer science), state of a system that outlives (persists for longer than) the Process (computing), process that created it. This is achieved in practice by storing the state as data in computer data storage. Programs have to transfer data to and from storage devices and have to provide mappings from the native Programming language, programming-language Data structure, data structures to the storage device data structures. Picture editing programs or Word processor, word processors, for example, achieve State (computer science), state persistence by saving their documents to computer file, files. Orthogonal or transparent persistence Persistence is said to be "Orthogonality#Computer science, orthogonal" or "transparent" when it is implemented as an intrinsic property of the execution environment of a program. An orthogonal persistence environment does not require any specific actions by programs running i ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Object-oriented Programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and implemented in code). In OOP, computer programs are designed by making them out of objects that interact with one another. Many of the most widely used programming languages (such as C++, Java, and Python) support object-oriented programming to a greater or lesser degree, typically as part of multiple paradigms in combination with others such as imperative programming and declarative programming. Significant object-oriented languages include Ada, ActionScript, C++, Common Lisp, C#, Dart, Eiffel, Fortran 2003, Haxe, Java, JavaScript, Kotlin, Logo, MATLAB, Objective-C, Object Pascal, Perl, PHP, Python, R, Raku, Ruby, Scala, SIMSCRIPT, Simula, Smalltalk, Swift, Vala and Visual Basic.NET. History The idea of ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

1997 Non-fiction Books
Events January * January 1 – The Emergency Alert System is introduced in the United States. * January 11 – Turkey threatens Cyprus on account of a deal to buy Russian S-300 missiles, prompting the Cypriot Missile Crisis. * January 16 – Murder of Ennis Cosby: Near Interstate 405 (California) on a Los Angeles freeway, Bill Cosby's son Ennis is shot in the head in a failed robbery attempt. * January 17 – A Delta II rocket carrying a military GPS payload explodes, shortly after liftoff from Cape Canaveral. * January 18 – In northwest Rwanda, Hutu militia members kill 6 Spanish aid workers and three soldiers, and seriously wound another. * January 19 – Yasser Arafat returns to Hebron after more than 30 years, and joins celebrations over the handover of the last Israeli-controlled West Bank city. (→ Hebron Agreement) * January 23 – Madeleine Albright becomes the first female Secretary of State of the United States, after confirmation by the United States S ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

1988 Non-fiction Books
1988 was a crucial year in the early history of the Internet—it was the year of the first well-known computer virus, the 1988 Internet worm. The first permanent intercontinental Internet link was made between the United States (National Science Foundation Network) and Europe (Nordunet) as well as the first Internet-based chat protocol, Internet Relay Chat. The concept of the World Wide Web was first discussed at CERN in 1988. The Soviet Union began its major deconstructing towards a mixed economy at the beginning of 1988 and began its gradual dissolution. The Iron Curtain began to disintegrate in 1988 as Hungary began allowing freer travel to the Western world. The first extrasolar planet, Gamma Cephei Ab (confirmed in 2003), was detected this year and the World Health Organization began its mission to eradicate polio. Global warming also began to emerge as a more significant concern, with climate scientist James Hansen testifying before the U.S. Senate on the iss ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Uniform Access Principle
The uniform access principle of computer programming was put forth by Bertrand Meyer (originally in his book ''Object-Oriented Software Construction''). It states "All services offered by a module should be available through a uniform notation, which does not betray whether they are implemented through storage or through computation." This principle applies generally to the syntax of object-oriented programming languages. In simpler form, it states that there should be no syntactical difference between working with an attribute, pre-computed property, or method/ query of an object. While most examples focus on the "read" aspect of the principle (i.e., retrieving a value), Meyer shows that the "write" implications (i.e., modifying a value) of the principle are harder to deal with in his monthly column on the Eiffel programming language official website. Explanation The problem being addressed by Meyer involves the maintenance of large software projects or software libraries. S ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Usenet
Usenet (), a portmanteau of User's Network, is a worldwide distributed discussion system available on computers. It was developed from the general-purpose UUCP, Unix-to-Unix Copy (UUCP) dial-up network architecture. Tom Truscott and Jim Ellis (computing), Jim Ellis conceived the idea in 1979, and it was established in 1980.''From Usenet to CoWebs: interacting with social information spaces'', Christopher Lueg, Danyel Fisher, Springer (2003), , Users read and post messages (called ''articles'' or ''posts'', and collectively termed ''news'') to one or more topic categories, known as Usenet newsgroup, newsgroups. Usenet resembles a bulletin board system (BBS) in many respects and is the precursor to the Internet forums that have become widely used. Discussions are Threaded discussion, threaded, as with web forums and BBSes, though posts are stored on the server sequentially.
[...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Eiffel (programming Language)
Eiffel is an object-oriented programming language designed by Bertrand Meyer (an object-orientation proponent and author of '' Object-Oriented Software Construction'') and Eiffel Software. Meyer conceived the language in 1985 with the goal of increasing the reliability of commercial software development. The first version was released in 1986. In 2005, the International Organization for Standardization (ISO) released a technical standard for Eiffel. The design of the language is closely connected with the Eiffel programming method. Both are based on a set of principles, including design by contract, command–query separation, the uniform-access principle, the single-choice principle, the open–closed principle, and option–operand separation. Many concepts initially introduced by Eiffel were later added into Java, C#, and other languages. New language design ideas, particularly through the Ecma/ ISO standardization process, continue to be incorporated into the Eiffe ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

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]  




Concurrency (computer Science)
Concurrency refers to the ability of a system to execute multiple tasks through simultaneous execution or time-sharing (context switching), sharing resources and managing interactions. Concurrency improves responsiveness, throughput, and scalability in modern computing, including: * Operating systems and embedded systems * Distributed systems, parallel computing, and high-performance computing * Database systems, web applications, and cloud computing Related concepts Concurrency is a broader concept that encompasses several related ideas, including: * Parallelism (simultaneous execution on multiple processing units). Parallelism executes tasks independently on multiple CPU cores. Concurrency allows for multiple ''threads of control'' at the program level, which can use parallelism or time-slicing to perform these tasks. Programs may exhibit parallelism only, concurrency only, both parallelism and concurrency, neither. * Multi-threading and multi-processing (shared ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Software
Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications. The history of software is closely tied to the development of digital computers in the mid-20th century. Early programs were written in the machine language specific to the hardware. The introduction of high-level programming languages in 1958 allowed for more human-readable instructions, making software development easier and more portable across different computer architectures. Software in a programming language is run through a compiler or Interpreter (computing), interpreter to execution (computing), execute on the architecture's hardware. Over time, software has become complex, owing to developments in Computer network, networking, operating systems, and databases. Software can generally be categorized into two main types: # operating systems, which manage hardware resources and provide services for applicat ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Design By Contract
Design by contract (DbC), also known as contract programming, programming by contract and design-by-contract programming, is an approach for designing software. It prescribes that software designers should define formal, precise and verifiable interface specifications for software components, which extend the ordinary definition of abstract data types with preconditions, postconditions and invariants. These specifications are referred to as "contracts", in accordance with a conceptual metaphor with the conditions and obligations of business contracts. The DbC approach assumes all ''client components'' that invoke an operation on a ''server component'' will meet the preconditions specified as required for that operation. Where this assumption is considered too risky (as in multi-channel or distributed computing), the inverse approach is taken, meaning that the ''server component'' tests that all relevant preconditions hold true (before, or while, processing the ''client co ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]