Computer Science

Declarative Programming

Is a programming paradigm that expresses the logic of a computation without describing its control flow. For example, DSLs, SQL, etc. This is in contrast from imperative programming, which requires a detailed description of the flow of algorithm.

Difference between software engineering and computer science

People are involved in software engineering so anything can go wrong and is based on estimation…!

Strong and Weak Types

The process of verifying and enforcing the constraints of types – type checking – may occur either at compile-time (a static check) or run-time (a dynamic check). If a language specification requires its typing rules strongly, one can refer to the process as strongly typed, if not, as weakly typed.

Static typing

A programming language is said to use static typing when type checking is performed during compile-time as opposed to run-time. In static typing, types are associated with variables not values. Statically typed languages include C, C++, C#, F#, Java, Fortran, Haskell, Pascal and Scala.

Dynamic typing

A programming language is said to be dynamically typed, when the majority of its type checking is performed at run-time as opposed to at compile-time. In dynamic typing, types are associated with values not variables. Dynamically typed languages include Groovy, JavaScript, Lisp, Objective-C, PHP, Prolog, Python, Ruby, Smalltalk and Tcl.

Null Dereferencing

A reference is an object containing information which refers to data stored elsewhere, as opposed to containing the data itself. Accessing the value referred to by a reference is called dereferencing it. In Java if myObject = null; then myObject.getSomething() throws a NullPointerException and is a null dereferencing.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License