Статическая типизация
Статическая типизация означает, что все проверки типов данных выполняются на этапе компиляции, а не на этапе выполнения программы. Кроме того, типы данных ассоциируются с переменными, а не с конкретными значениями.
Проверки типов данных, выполняемые на этапе компиляции, используют только сам код программы. Преимуществом статической типизации является то, что такие проверки достаточно выполнить только один раз. Если проверкой установлено, что типы данных в программе удовлетворяют некоторому условию, то это будет выполняться для всех дальнейших запусков программы. Кроме того, отсутствие проверок, выполняемых на этапе выполнения программы, и знание всех типов данных на этапе компиляции позволяет сделать скомпилированную программу более эффективной.
Статическая типизация позволяет находить ошибки типизации, допущенные в редко используемых ветвях логики программы, на этапе компиляции.
Статическая типизация используется в большинстве компилируемых языков программирования.
Статическая типизация является противоположностью динамической типизации.
- ABAP
- Ada (диалекты: Ada 2005, Ada 2012, Ada 83, Ada 95, SPARK)
- Agda
- ALGOL (диалекты: ALGOL 58, Algol 60)
- Boo
- C (диалекты: ANSI C, C11, C99, K&R C)
- C# (диалекты: Cω, ECMA-334, ISO/IEC 23270:2003, Polyphonic C#)
-
C++
(диалекты:
C++03,
C++11,
C++98)
- Acorn C/C++
- Borland C++ Builder
-
Digital Mars C/C++
- Digital Mars C/C++ 8.0
- Digital Mars C/C++ 8.10
- Digital Mars C/C++ 8.12
- Digital Mars C/C++ 8.13
- Digital Mars C/C++ 8.15
- Digital Mars C/C++ 8.17
- Digital Mars C/C++ 8.18
- Digital Mars C/C++ 8.18A
- Digital Mars C/C++ 8.18C
- Digital Mars C/C++ 8.18D
- Digital Mars C/C++ 8.18E
- Digital Mars C/C++ 8.20
- Digital Mars C/C++ 8.22
- Digital Mars C/C++ 8.23
- Digital Mars C/C++ 8.25
- Digital Mars C/C++ 8.26
- Digital Mars C/C++ 8.27
- Digital Mars C/C++ 8.28
- Digital Mars C/C++ 8.29
- Digital Mars C/C++ 8.30
- Digital Mars C/C++ 8.31
- Digital Mars C/C++ 8.32
- Digital Mars C/C++ 8.33
- Digital Mars C/C++ 8.34
- Digital Mars C/C++ 8.35
- Digital Mars C/C++ 8.36
- Digital Mars C/C++ 8.37
- Digital Mars C/C++ 8.38
- Digital Mars C/C++ 8.39
- Digital Mars C/C++ 8.40
- Digital Mars C/C++ 8.41
- Digital Mars C/C++ 8.42
- Digital Mars C/C++ 8.43
- Digital Mars C/C++ 8.44
- Digital Mars C/C++ 8.45
- Digital Mars C/C++ 8.46
- Digital Mars C/C++ 8.47
- Digital Mars C/C++ 8.48
- Digital Mars C/C++ 8.49
- Digital Mars C/C++ 8.50
- Intel C/C++
- MIPSpro C/C++
- Microsoft Visual C++
- Open Watcom C/C++
- Open64 C/C++
- PGI C++ Workstation
- Sun Studio C/C++
- Watcom C/C++
- g++
- Cat
- Ceylon
- Clarion (диалекты: Clarion, Clarion for DOS, Clarion#)
- COBOL
- D
- Dart
- Eiffel
- F#
- FORTRAN (диалекты: F, FORTRAN 66, FORTRAN 77, Fortran 2003, Fortran 2008, Fortran 90, Fortran 95, High Performance Fortran)
- Go
-
Haskell
(диалекты:
Haskell 98,
O'Haskell)
- GHC
- Gofer
- HBI и HBC
- Haskell++
- Helium
- Hugs
- Hugs98 for .NET
- Jaskell
- Jhc
- O'Hugs
- Template Haskell
- YHC
- Yale Haskell
-
nhc98
- nhc98 1.04
- nhc98 1.06
- nhc98 1.08
- nhc98 1.10
- nhc98 1.12
- nhc98 1.14
- nhc98 1.14a
- nhc98 1.16
- nhc98 1.18
- nhc98 pre-release 1
- nhc98 pre-release 10
- nhc98 pre-release 11
- nhc98 pre-release 12
- nhc98 pre-release 13
- nhc98 pre-release 14
- nhc98 pre-release 15
- nhc98 pre-release 16
- nhc98 pre-release 17
- nhc98 pre-release 18
- nhc98 pre-release 19
- nhc98 pre-release 2
- nhc98 pre-release 3
- nhc98 pre-release 4
- nhc98 pre-release 5
- nhc98 pre-release 6
- nhc98 pre-release 7
- nhc98 pre-release 8
- nhc98 pre-release 9
- nhc98 release 1.00
- nhc98 release 1.02
- Java
- Mercury
- Miranda
-
ML
(диалекты:
CAML,
Standard ML)
- Caml Light
- Caml Special Light
- Dependent ML
- Edinburgh ML
- Extended ML
- GAML
- HaMLet
- HaMLet S
- Heavy CAML
- Lazy ML
- ML Kit
- MLj
- MLton
- MOSCOW ML
- MicroML
-
Objective CAML
- Objective Caml 1.00
- Objective Caml 1.01
- Objective Caml 1.02
- Objective Caml 1.03
- Objective Caml 1.04
- Objective Caml 1.05
- Objective Caml 1.06
- Objective Caml 1.07
- Objective Caml 2.00
- Objective Caml 2.01
- Objective Caml 2.02
- Objective Caml 2.03
- Objective Caml 2.04
- Objective Caml 3.00
- Objective Caml 3.01
- Objective Caml 3.02
- Objective Caml 3.03 ALPHA
- Objective Caml 3.04
- Objective Caml 3.05
- Objective Caml 3.06
- Objective Caml 3.07
- Objective Caml 3.08.0
- Objective Caml 3.08.1
- Objective Caml 3.08.2
- Objective Caml 3.08.3
- Objective Caml 3.08.4
- Objective Caml 3.09.0
- Objective Caml 3.09.1
- Objective Caml 3.09.2
- Objective Caml 3.09.3
- Objective Caml 3.10.0
- Objective Caml 3.10.2
- Poly/ML
- SML#
- SML.NET
-
SML/NJ
- SML/NJ 110.41
- SML/NJ 110.43
- SML/NJ 110.40
- SML/NJ 110.42
- SML/NJ 110.44
- SML/NJ 110.45
- SML/NJ 110.46
- SML/NJ 110.47
- SML/NJ 110.48
- SML/NJ 110.49
- SML/NJ 110.50
- SML/NJ 110.51
- SML/NJ 110.52
- SML/NJ 110.53
- SML/NJ 110.54
- SML/NJ 110.55
- SML/NJ 110.56
- SML/NJ 110.57
- SML/NJ 110.58
- SML/NJ 110.59
- SML/NJ 110.60
- SML/NJ 110.61
- SML/NJ 110.62
- SML/NJ 110.63
- SML/NJ 110.63.1
- SML/NJ 110.63.2
- SML/NJ 110.64
- SML/NJ 110.65
- SML/NJ 110.69
- SMLtoJs
- Successor ML
- TILT
- sml2c
- Modula (диалекты: Modula-2, Modula-2+, Modula-3, Objective Modula-2)
- Nemerle
- Nimrod
- Oberon (диалекты: Active Oberon, Component Pascal, Oberon, Oberon-2, Zonnon)
- Objeck
- Objective-C
- Opa
-
Pascal
(диалекты:
Extended Pascal,
Object Pascal,
PASCAL-XSC,
Standard Pascal)
- Borland Delphi
- Borland Pascal
- Free Pascal
- GNU Pascal
- HP Pascal
- HiSoft Pascal
- IP Pascal
- Irie Pascal
-
Pascal ABC
- Pascal ABC 1.7
- Pascal ABC 1.8
- Pascal ABC 1.9
- Pascal ABC 2.0
- Pascal ABC 2.1
- Pascal ABC 2.2
- Pascal ABC 2.3
- Pascal ABC 2.4
- Pascal ABC 2.5
- Pascal ABC 2.5.3
- Pascal ABC 2.6
- Pascal ABC 2.6.2
- Pascal ABC 2.6.3
- Pascal ABC 2.6.4
- Pascal ABC 2.6.5
- Pascal ABC 2.7
- Pascal ABC 2.7.2
- Pascal ABC 2.7.3
- Pascal ABC 2.7.4
- Pascal ABC 3.0
- Pascal-XT
- PascalABC.NET
- Prospero Extended Pascal
- Turbo Pascal
- UCSD Pascal
- Virtual Pascal
- Pike
- PL/B
- Rust
-
Scala
-
Scala for JVM
- Scala 1.0.0-b2
- Scala 1.0.0-b4
- Scala 1.0.0-b5
- Scala 1.0.0-b6
- Scala 1.0.0-b8
- Scala 1.1.0-b1
- Scala 1.1.0-b3
- Scala 1.1.1.0
- Scala 1.1.1.3
- Scala 1.2.0.0
- Scala 1.2.0.1
- Scala 1.3.0.10
- Scala 1.3.0.2
- Scala 1.3.0.3
- Scala 1.3.0.4
- Scala 1.3.0.7
- Scala 1.3.0.9
- Scala 1.4.0.0
- Scala 1.4.0.1
- Scala 1.4.0.2
- Scala 1.4.0.3
- Scala 1.4.0.4
- Scala 2.0.0
- Scala 2.1.0
- Scala 2.1.1
- Scala 2.1.2
- Scala 2.1.3
- Scala 2.1.4
- Scala 2.1.5
- Scala 2.1.6
- Scala 2.1.7
- Scala 2.1.8
- Scala 2.2.0
- Scala 2.3.0
- Scala 2.3.1
- Scala 2.3.2
- Scala 2.3.3
- Scala 2.4.0-final
- Scala 2.5.0-final
- Scala 2.5.1-final
- Scala 2.6.0-final
- Scala 2.7.7-final
- Scala 2.8.0-final
-
Scala for JVM
- Seed7
- SQL (диалекты: T-SQL)
- Vala
- X10
- Глагол