Data types: Difference between revisions

From Computer Science Wiki
No edit summary
No edit summary
Line 7: Line 7:
The main purpose of a type system is to reduce possibilities for bugs in computer programs by defining interfaces between different parts of a computer program, and then checking that the parts have been connected in a consistent way. This checking can happen statically (at compile time), dynamically (at run time), or as a combination of both. Type systems have other purposes as well, such as expressing business rules and enabling certain compiler optimizations <ref>https://en.wikipedia.org/wiki/Type_system</ref>
The main purpose of a type system is to reduce possibilities for bugs in computer programs by defining interfaces between different parts of a computer program, and then checking that the parts have been connected in a consistent way. This checking can happen statically (at compile time), dynamically (at run time), or as a combination of both. Type systems have other purposes as well, such as expressing business rules and enabling certain compiler optimizations <ref>https://en.wikipedia.org/wiki/Type_system</ref>


By the way, a [[Abstract dad structures|data structure]] (or [[Abstract dad structures|abstract data structure]]) simply stores data types in a specific way.
By the way, a [[Abstract data structures|data structure]] (or [[Abstract data structures|abstract data structure]]) simply stores data types in a specific way.


== Primitive types ==
== Primitive types ==

Revision as of 11:53, 12 May 2020

Programming[1]

Data type determines what sort of data is being stored and how it will be used by the program. In computer science and computer programming, a data type or simply type is an attribute of data which tells the compiler or interpreter how the programmer intends to use the data [2].

Data types are important in programming languages because they help the compiler or interpreter more efficiently allocate memory. Data types tells MMU that how much memory requirement it has before the program compiles. Also, the data type defines which operations can safely be performed to create, transform and use the variable in another computation.

The main purpose of a type system is to reduce possibilities for bugs in computer programs by defining interfaces between different parts of a computer program, and then checking that the parts have been connected in a consistent way. This checking can happen statically (at compile time), dynamically (at run time), or as a combination of both. Type systems have other purposes as well, such as expressing business rules and enabling certain compiler optimizations [3]

By the way, a data structure (or abstract data structure) simply stores data types in a specific way.

Primitive types[edit]

Not all languages have the same primitive data types. Please see the table below for a representative list of types:


Data type Definition Notes
Int Integer. The mathematical name for any positive or negative whole number. This is a common primitive data type
Float A float is a number that has a fractional or decimal part. This is a common primitive data type
Boolean A boolean is simply true or false, and can be nothing other than true or false This is a common primitive data type
String A string is used to store characters, which could be text or numbers. This is a common primitive data type
Pointer / Reference This type points to (or references) a location in memory This is a common primitive data type in compiled languages.
Char Character. This data type stores one single character. This is a common primitive data type in compiled languages.
Date / Time This data types stores data as date and time This is not a "classic" primitive data type, but shows up often enough.


Statically typed languages[edit]

A language is statically typed if the type of a variable is known at compile time. For some languages this means that you as the programmer must specify what type each variable is (e.g.: Java, C, C++); other languages offer some form of type inference, the capability of the type system to deduce the type of a variable (e.g.: OCaml, Haskell, Scala, Kotlin)

The main advantage here is that all kinds of checking can be done by the compiler, and therefore a lot of trivial bugs are caught at a very early stage.[4]

Examples: C, C++, Java, Rust, Go, Scala

Dynamically typed languages[edit]

A language is dynamically typed if the type is associated with run-time values, and not named variables/fields/etc. This means that you as a programmer can write a little quicker because you do not have to specify types every time (unless using a statically-typed language with type inference).

Examples: Perl, Ruby, Python, PHP, JavaScript

Most scripting languages have this feature as there is no compiler to do static type-checking anyway, but you may find yourself searching for a bug that is due to the interpreter misinterpreting the type of a variable. Luckily, scripts tend to be small so bugs have not so many places to hide.[5]


Do I understand this?[edit]

If you are still stuck, or you have other questions, you may want to ask a question on our discussion board.

Some helpful links[edit]


References[edit]