FACTOID # 21: 15% of Army recruits from South Dakota are Native American, which is roughly the same percentage for female Army recruits in the state.
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 


FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:



(* = Graphable)



Encyclopedia > Interface (computer science)

An interface defines the communication boundary between two entities, such as a piece of software, a hardware device, or a user. It generally refers to an abstraction that an entity provides of itself to the outside. This separates the methods of external communication from internal operation, and allows it to be internally modified without affecting the way outside entities interact with it, as well as provide multiple abstractions of itself. It may also provide a means of translation between entities which do not speak the same language, such as between a human and a computer. Because interfaces are a form of indirection, some additional overhead is incurred versus direct communication. abstraction in general. ... In simple terms, polymorphism lets you treat derived class members just like their parent classs members. ... In computer programming, indirection is the ability to reference something using a name, reference, or container instead of the value itself. ...

The interface between a human and a computer is called a user interface. Interfaces between hardware components are physical interfaces. This article deals with software interfaces which exist between separate software components and provide a programmatic mechanism by which these components can communicate. The user interface is the part of a system exposed to users. ... An electrical connector is a device for joining electrical circuits together. ... Software component representations: above the representation used in UML, below the representation commonly used by Microsofts COM objects. ...


Interfaces in practice

A piece of software is provided access to computer resources (such as memory, CPU, storage, etc.) by its underlying computer system; the availability of these resources to other software can have major ramifications -- sometimes disastrous ones -- for its functionality and stability. A key principle of design is to prohibit access to all resources by default, allowing access only through well-defined entry points, i.e. interfaces (See Information hiding). In computer science, the principle of information hiding is the hiding of design decisions in a computer program that are most likely to change, thus protecting other parts of the program from change if the design decision is changed. ...

The types of access that interfaces provide between software components can include: constants, data types, types of procedures, exception specifications and method signatures. In some instances, it may be useful to define variables as part of the interface. It often also specifies the functionality of those procedures and methods, either by comments or (in some experimental languages) by formal logical assertions. In mathematics and the mathematical sciences, a constant is a fixed, but possibly unspecified, value. ... A data type is a constraint placed upon the interpretation of data in a type system in computer programming. ... Look up Procedure in Wiktionary, the free dictionary. ... Exception handling is a programming language construct or computer hardware mechanism designed to handle the occurrence of some condition that changes the normal flow of execution. ... This article or section should be merged with type signature In computer programming, especially object-oriented programming, a method is commonly identified by its unique method signature. ... In computer science and mathematics, a variable (IPA pronunciation: ) (sometimes called a pronumeral) is a symbolic representation denoting a quantity or expression. ... Look up Comment on Wiktionary, the free dictionary In computer programming, comments are parts of the source code which, together with its layout, are used to explain the code. ...

The interface of a software module A is deliberately kept separate from the implementation of that module. The latter contains the actual code of the procedures and methods described in the interface, as well as other "private" variables, procedures, etc.. Any other software module B (which can be referred to as a client to A) that interacts with A is forced to do so only through the interface. One practical advantage of this arrangement is that replacing the implementation of A by another one that meets the same specifications of the interface should not cause B to fail — as long as its use of A complies with the specifications of the interface (See also Liskov substitution principle). In object-oriented programming, the Liskov substitution principle is a particular definition of subtype that was introduced by Barbara Liskov and Jeannette Wing in a 1993 paper entitled Family Values: A Behavioral Notion of Subtyping [1]. (It is not the only definition; see datatype. ...

Uses of interfaces

The concept of interface is the cornerstone of modular programming, a forerunner and a standard ingredient of object-oriented programming. In object-oriented programming, an object's interface consists of a set of methods that the object must respond to. Note that the object does not make its instance variables a part of its interface - these are typically accessed by means of accessor methods. Modularity is a concept that has applications in the contexts of computer science, particularly programming, as well as cognitive science in investigating the structure of mind. ... Object-oriented programming (OOP) is a programming paradigm that uses objects to design applications and computer programs. ... Used mainly in object-oriented programming, the term method refers to a piece of code that is exclusively associated either with a class (called class methods or static methods) or with an object (called instance methods). ...

Some object-oriented programming languages mandate that the interface to the object be specified to the compiler separately from the implementation of that object, whilst others relax the requirement. For example, a class in a programming language such as Objective-C consists of its interface, specified in a header file, and the implementation in the source file. Because of the dynamically typed nature of Objective-C, one can send messages to any object, and the interface to the class becomes important as it specifies the methods the class responds to. Objective-C, often referred to as ObjC or more seldomly as Objective C or Obj-C, is an object oriented programming language implemented as an extension to C. It is used primarily on Mac OS X and GNUstep, two environments based on the OpenStep standard, and is the primary language... In computer science, a type system defines how a programming language classifies values and expressions into types, how it can manipulate those types and how they interact. ...

Interfaces were historically derived from the header files of the C programming language by restricting their syntactic context and contents, and making them a part of the language semantics (as opposed to a mere preprocessor feature). In computer programming, especially in the C programming language or C++, a header file or include file is a file that contains one or more declarations, usually in source code form. ... C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ... A preprocessor is a program that takes text and performs lexical conversions on it. ...

The Java programming language takes a different approach to the concept of the interface normally existing in other object-oriented programming languages (i.e. that the interface specified is the interface to the class), in that an interface specifies a set of methods which implement some specific functionality, common to a set of classes. See protocol (object-oriented programming). Java is a programming language originally developed by Sun Microsystems and released in 1995. ... In computer sciences object-oriented programming, a protocol (Java: interface) is what or how unrelated objects use to communicate with each other. ...

Some programming languages (e.g. D, Java, Logtalk) allows the definition of interface hierarchies. This allows easy definition of e.g. both minimal and extended versions of an interface. D is an object-oriented, imperative, multiparadigm system programming language designed by Walter Bright of Digital Mars as a re-engineering of C++. This was done by re-designing many C++ features, and borrowing ideas from other programming languages. ... Java is a programming language originally developed by Sun Microsystems and released in 1995. ... Logtalk is an open source object-oriented extension to Prolog. ...

Some programming languages (e.g. Logtalk) support private and protected implementation of an interface. Thus, the (public) methods declared in an interface can easily become private or protected methods of a class implementing the interface. Logtalk is an open source object-oriented extension to Prolog. ...

The Eiffel language includes in the interface of a class its invariants and the pre- and postconditions of the methods of the class. This is essential to the methodology of design by contract, and may be regarded as an extension of the conditions imposed by the types of the arguments. These rules may be specified in the implementation of a class or in an ancestor which may leave the methods unimplemented. They are extracted by language processors to provide an interface view in the development environment and to generate run-time assertions (checks) in debug versions. The language also ensures that derived classes obey the contracts of their ancestors. Eiffel is an ISO-standardized object-oriented programming language designed for extensibility, reusability, reliability and programmer productivity. ... In computer programming, a class invariant is an invariant used to constrain objects of a class. ... In logic a precondition is a condition that has to be met, before a main argument can have any value. ... A postcondition is a fact that must always be true just after the execution of some section of code. ... Design by contract, DBC or Programming by contract is a methodology for designing computer software. ... An integrated development environment (IDE) (also known as an integrated design environment and integrated debugging environment) is computer software to help computer programmers develop software. ... The braces are included in the comment in order to help distinguish this use of a comment from other uses. ...

Supporting Languages

Certain programming languages have different methodologies for allowing the construction of interfaces. In general, any programming language can implement an interface, but the following programming languages provide specific interface constructs of some kind or another: A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. ...

ActionScript is a scripting language based on ECMAScript, used primarily for the development of websites and software using the Adobe Flash Player platform (in the form of SWF files embedded into Web pages). ... Ada is a structured, statically typed imperative computer programming language designed by a team led by Jean Ichbiah of CII Honeywell Bull under contract to the United States Department of Defense during 1977–1983. ... C++ (pronounced see plus plus, IPA: ) is a general-purpose programming language with high-level and low-level capabilities. ... The title given to this article is incorrect due to technical limitations. ... This article or section does not adequately cite its references or sources. ... D is an object-oriented, imperative system programming language designed by Walter Bright of Digital Mars as a re-engineering of C/C++. He has done this by re-designing many C++ features, and borrowing ideas from other programming languages. ... Delphi is the primary programming language of Borland Delphi. ... Eiffel is an ISO-standardized object-oriented programming language designed for extensibility, reusability, reliability and programmer productivity. ... Java is a programming language originally developed by Sun Microsystems and released in 1995. ... Logtalk is an open source object-oriented extension to Prolog. ... Mesa is a programming language developed at Xerox PARC that was used to program the Xerox Alto (one of the first personal computers with a graphical user interface), and later the Xerox Star workstations, and later the GlobalView desktop environment. ... ML is a general-purpose functional programming language developed by Robin Milner and others in the late 1970s at the University of Edinburgh, whose syntax is inspired by ISWIM. Historically, ML stands for metalanguage as it was conceived to develop proof tactics in the LCF theorem prover (the language of... In the mid-1970s, after designing the Pascal programming language, Niklaus Wirth began experimenting with program concurrency and modularization, which led to the design of the Modula programming language. ... Modula-2 is a computer programming language invented by Niklaus Wirth at ETH around 1978, as a successor to Modula, an intermediate language by him. ... Modula-3 is a programming language conceived as a successor to Modula-2. ... Oberon is a reflective programming language created in the late 1980s by Professor Niklaus Wirth (creator of the Pascal, Modula, and Modula-2 programming languages) and his associates at ETHZ in Switzerland. ... Objective-C, often referred to as ObjC or more seldomly as Objective C or Obj-C, is an object oriented programming language implemented as an extension to C. It is used primarily on Mac OS X and GNUstep, two environments based on the OpenStep standard, and is the primary language... PHP is a reflective programming language originally designed for producing dynamic web pages. ... Python is a high-level programming language first released by Guido van Rossum in 1991. ... REALbasic or RB is an object-oriented dialect of the BASIC programming language commercially marketed by the Austin, Texas based REAL Software Inc. ... In the field of software engineering, the Unified Modeling Language (UML) is a standardized specification language for object modeling. ... Visual Basic (VB) is an event driven programming language and associated development environment from Microsoft for its COM programming model. ...

See also

  Results from FactBites:
Computer Science - Printer-friendly - MSN Encarta (1687 words)
Computer science can be divided into four main fields: software development, computer architecture (hardware), human-computer interfacing (the design of the most efficient ways for humans to use computers), and artificial intelligence (the attempt to make computers behave intelligently).
Computer scientists are interested in making operating systems easier to use, more secure, and more efficient by developing new user interface designs, designing new mechanisms that allow data to be shared while preventing access to sensitive data, and developing algorithms that make more effective use of the computer’s time and memory.
Examples include improving computer access for people with disabilities, simplifying program use, developing three-dimensional input and output devices for virtual reality, improving handwriting and speech recognition, and developing heads-up displays for aircraft instruments in which critical information such as speed, altitude, and heading are displayed on a screen in front of the pilot’s window.
computer science: Definition and Much More from Answers.com (2100 words)
Computer science, or computing science, is the study of the theoretical foundations of information and computation and their implementation and application in computer systems.
Computer science began to be established as a distinct academic discipline in the 1960s, with the creation of the first computer science departments and degree programs.
Early computer science was strongly influenced by the work of mathematicians such as Kurt Gödel and Alan Turing, and there continues to be a useful interchange of ideas between the two fields in areas such as mathematical logic, category theory, domain theory, and algebra.
  More results at FactBites »



Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:


Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m