Browse Definitions :
Definition

strongly typed programming language

What is a strongly typed programming language?

A strongly typed programming language is one in which each type of data, such as integers, characters, hexadecimals and packed decimals, is predefined as part of the programming language, and all constants or variables defined for a given program must be described with one of the data types. Certain operations might be allowable only with specific data types.

Strongly typed programming language refers to an idea that describes the enforcement of firm restrictions on mixing different data types and values. When there is a violation, errors, also known as exceptions, occur. Strongly typed programming languages use a language compiler to enforce data typing compliance.

The typical steps performed by a compiler
A language compiler is used to enforce data typing compliance for strongly typed programming languages.

Advantages and disadvantages of strongly typed programming languages

Strongly typed programming languages have their benefits and drawbacks.

A key advantage of strong data typing is that it enforces a rigorous set of rules to ensure a certain consistency of results. Further, a compiler can quickly detect an object being sent a message to which it will not respond, preventing runtime errors. Other benefits include no runtime penalties for determining types, accelerated development by detecting errors earlier and better-optimized code from the compiler.

However, a major disadvantage of using a strongly typed programming language is that programmers lose flexibility. For example, strongly typed programming languages prevent the programmer from inventing a data type not anticipated by the developers of the programming language. It limits how creative one can be in using a given data type. Strong typing in a programming language also makes it more challenging to define collections of heterogeneous objects.

The programming lifecycle
Runtime is the final stage of the programming lifecycle.

Strongly vs. loosely typed programming languages

In computer programming, a programming language is strongly typed if it demands the specification of data types. A programming language is loosely typed, or weakly typed, when it does not require the explicit specification of different types of objects and variables. The "looser" typing rules in weakly typed programming languages can produce erroneous or unpredictable results. It can execute implicit type conversions at runtime.

In programming languages, the concepts of strong and weak, or loose, typing are related to but different from static and dynamic typing. A programming language that is strongly typed can be either statically or dynamically typed.

In static typing, type checking takes place at compile time and catches such things as missing functions, invalid type arguments, or a mismatch between a data value and the type of variable to which it's assigned -- before the program has a chance to run the erroneous code and risk crashing. In dynamically typed languages, type checking occurs at runtime, so the compiler will ignore invalid type arguments or mismatched data. If the type checker detects an error, it will alert the developer to repair the code to avoid the program crashing.

Examples of strongly and loosely typed programming languages

Here are some examples of strongly typed and loosely typed programming languages.

Strongly typed programming languages include the following:

Loosely typed programming languages include the following:

Why is Java a strongly typed language?

Java is considered strongly typed because it demands the declaration of every variable with a data type. Users cannot create a variable without the range of values it can hold. Once declared, the data type of the variable cannot be changed.

Why is Python a strongly typed language?

Python is strongly typed because the interpreter keeps track of all variable types. Python can be very dynamic, as it rarely uses this information to limit variable usage.

Is C a strongly or weakly typed programming language?

C is strongly typed in that the variable type must be specified when declaring the variable. However, C can also be regarded as weakly typed because users can convert data types through a cast and without compiler errors.

Why is C++ a strongly typed programming language?

The C++ programming language is considered strongly typed and has parametric polymorphism available through templates. This means you can create a set of generic data types and accurately represent them.

Why is C# a strongly typed programming language?

C# is a strongly typed programming language as all variable types have to be specified, and all errors are detected and flagged during compilation.

Why is JavaScript a weakly typed programming language?

Unlike C#, JavaScript is a weakly typed programming language because you do not have to specify the variable type in advance.

Explore dead programming languages we should never forget and a comparison of top programming languages

This was last updated in June 2022

Continue Reading About strongly typed programming language

Networking
  • subnet (subnetwork)

    A subnet, or subnetwork, is a segmented piece of a larger network. More specifically, subnets are a logical partition of an IP ...

  • secure access service edge (SASE)

    Secure access service edge (SASE), pronounced sassy, is a cloud architecture model that bundles together network and cloud-native...

  • Transmission Control Protocol (TCP)

    Transmission Control Protocol (TCP) is a standard protocol on the internet that ensures the reliable transmission of data between...

Security
  • cyber attack

    A cyber attack is any malicious attempt to gain unauthorized access to a computer, computing system or computer network with the ...

  • digital signature

    A digital signature is a mathematical technique used to validate the authenticity and integrity of a digital document, message or...

  • What is security information and event management (SIEM)?

    Security information and event management (SIEM) is an approach to security management that combines security information ...

CIO
  • product development (new product development)

    Product development -- also called new product management -- is a series of steps that includes the conceptualization, design, ...

  • innovation culture

    Innovation culture is the work environment that leaders cultivate to nurture unorthodox thinking and its application.

  • technology addiction

    Technology addiction is an impulse control disorder that involves the obsessive use of mobile devices, the internet or video ...

HRSoftware
  • organizational network analysis (ONA)

    Organizational network analysis (ONA) is a quantitative method for modeling and analyzing how communications, information, ...

  • HireVue

    HireVue is an enterprise video interviewing technology provider of a platform that lets recruiters and hiring managers screen ...

  • Human Resource Certification Institute (HRCI)

    Human Resource Certification Institute (HRCI) is a U.S.-based credentialing organization offering certifications to HR ...

Customer Experience
  • contact center agent (call center agent)

    A contact center agent is a person who handles incoming or outgoing customer communications for an organization.

  • contact center management

    Contact center management is the process of overseeing contact center operations with the goal of providing an outstanding ...

  • digital marketing

    Digital marketing is the promotion and marketing of goods and services to consumers through digital channels and electronic ...

Close