Memory safetyMemory safety is the state of being protected from various software bugs and security vulnerabilities when dealing with memory access, such as buffer overflows and dangling pointers. For example, Java is said to be memory-safe because its runtime error detection checks array bounds and pointer dereferences. In contrast, C and C++ allow arbitrary pointer arithmetic with pointers implemented as direct memory addresses with no provision for bounds checking, and thus are potentially memory-unsafe.
Is-aAn is-a relationship is when one type of object 'is a' instance of another type of object. For example, a cat 'is a' animal, but not vice versa. All cats are animals, but not all animals are cats. The concept becomes important in object oriented programing, where 'is a' relationships are often used as a way to structure code - behaviour that are is relevant to all animals is defined on an animal class, whereas behaviour that is relevant only for cats is defined in a cat class.
Class-based programmingClass-based programming, or more commonly class-orientation, is a style of object-oriented programming (OOP) in which inheritance occurs via defining classes of objects, instead of inheritance occurring via the objects alone (compare prototype-based programming). The most popular and developed model of OOP is a class-based model, instead of an object-based model. In this model, objects are entities that combine state (i.e., data), behavior (i.e., procedures, or methods) and identity (unique existence among all other objects).
Polymorphism (computer science)In programming language theory and type theory, polymorphism is the provision of a single interface to entities of different types or the use of a single symbol to represent multiple different types. The concept is borrowed from a principle in biology where an organism or species can have many different forms or stages. The most commonly recognized major classes of polymorphism are: Ad hoc polymorphism: defines a common interface for an arbitrary set of individually specified types.
Backward compatibilityBackward compatibility (sometimes known as backwards compatibility) is a property of an operating system, software, real-world product, or technology that allows for interoperability with an older legacy system, or with input designed for such a system, especially in telecommunications and computing. Modifying a system in a way that does not allow backward compatibility is sometimes called "breaking" backward compatibility. Such breaking usually incurs various types of costs, such as switching cost.
Top typeIn mathematical logic and computer science, some type theories and type systems include a top type that is commonly denoted with top or the symbol ⊤. The top type is sometimes called also universal type, or universal supertype as all other types in the type system of interest are subtypes of it, and in most cases, it contains every possible object of the type system. It is in contrast with the bottom type, or the universal subtype, which every other type is supertype of and it is often that the type contains no members at all.
Computer compatibilityA family of computer models is said to be compatible if certain software that runs on one of the models can also be run on all other models of the family. The computer models may differ in performance, reliability or some other characteristic. These differences may affect the outcome of the running of the software. Software compatibility can refer to the compatibility that a particular software has running on a particular CPU architecture such as Intel or PowerPC.
Binary-code compatibilityBinary-code compatibility (binary compatible or object-code-compatible) is a property of a computer system, meaning that it can run the same executable code, typically machine code for a general-purpose computer CPU, that another computer system can run. Source-code compatibility, on the other hand, means that recompilation or interpretation is necessary before the program can be run on the compatible system.
Source-code compatibilitySource-code compatibility (source-compatible) means that a program can run on computers (or operating systems), independently of binary-code compatibility and that the source code is needed for portability. The source code must be compiled before running, unless the computer used has an interpreter for the language at hand. The term is also used for assembly language compatibility, where the source is a human-readable form of machine code that must be converted into numerical (i.e. executable) machine code by an assembler.
Sled dogA sled dog is a dog trained and used to pull a land vehicle in harness, most commonly a sled over snow. Sled dogs have been used in the Arctic for at least 8,000 years and, along with watercraft, were the only transportation in Arctic areas until the introduction of semi-trailer trucks, snowmobiles and airplanes in the 20th century, hauling supplies in areas that were inaccessible by other methods. They were used with varying success in the explorations of both poles, as well as during the Alaskan gold rush.
DogThe dog (Canis familiaris or Canis lupus familiaris) is a domesticated descendant of the wolf. Also called the domestic dog, it is derived from extinct Pleistocene wolves, and the modern wolf is the dog's nearest living relative. Dogs were the first species to be domesticated by hunter-gatherers over 15,000 years ago before the development of agriculture. Due to their long association with humans, dogs have expanded to a large number of domestic individuals and gained the ability to thrive on a starch-rich diet that would be inadequate for other canids.
Dog breedA dog breed is a particular type of dog that was purposefully bred by humans to perform specific tasks, such as herding, hunting, and guarding. Dogs are the most variable mammal on Earth, with artificial selection producing around 450 globally recognized breeds. These breeds possess distinct traits related to morphology, which include body size, skull shape, tail phenotype, fur type, body shape, and coat colour. Their behavioral traits include guarding, herding, and hunting, and personality traits such as hyper-social behavior, boldness, and aggression.