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