Search the World's Largest Database of Information Science & Technology Terms & Definitions
InfInfoScipedia LogoScipedia
A Free Service of IGI Global Publishing House
Below please find a list of definitions for the term that
you selected from multiple scholarly research resources.

What is Strong/Static/Dynamic Typing

Encyclopedia of Information Science and Technology, Second Edition
A strongly typed language guarantees that in a program all the operations are applied to operands of compatible type, and any type violation is flagged by the language implementation. A statically typed language makes such guarantees by compile-time analysis of a program. A dynamically typed language makes such guarantees using run-time checks. Modern object-oriented languages such as Java and C# are strongly typed and straddle the two extremes, by checking type constraints statically as much as possible, and generating code for performing additional type constraints at run-time in situations where those checks are data dependent.
Published in Chapter:
Inheritance in Programming Languages
Krishnaprasad Thirunarayan (Wright State University, USA)
DOI: 10.4018/978-1-60566-026-4.ch321
Abstract
Inheritance is a powerful concept employed in computer science, especially in artificial intelligence (AI), object-oriented programming (OOP), and object-oriented databases (OODB). In the field of AI, inheritance has been primarily used as a concise and effective means of representing and reasoning with common-sense knowledge (Thirunarayan, 1995). In programming languages and databases, inheritance has been used for the purpose of sharing data and methods, and for enabling modularity of software (re)use and maintenance (Lakshmanan & Thirunarayan, 1998). In this chapter, we present various design choices for incorporating inheritance into programming languages from an application programmer’s perspective. In contrast with the language of mathematics, which is mature and well-understood, the embodiment of object-oriented concepts and constructs in a concrete programming language is neither fixed nor universally accepted. We exhibit programs with similar syntax in different languages that have very different semantics, and different looking programs that are equivalent. We compare and contrast method inheritance, interaction of type system with method binding, constructs for method redefinition, and their implementation in widely used languages such as C++ (Stroustrup, 1997), Java (Arnold, Gosling, & Holmes, 2005), and C# (Hejlsberg, Wiltamuth, & Golde, 2006), to illustrate subtle issues of interest to programmers. Finally, we discuss multiple inheritance briefly.
Full Text Chapter Download: US $37.50 Add to Cart
eContent Pro Discount Banner
InfoSci OnDemandECP Editorial ServicesAGOSR