Wednesday, January 1, 2014

Types of Programming Languages

Dynamic Languages 

Dynamic languages do their work at run time. They do checking at run time. Scripting languages are also dynamic languages.

To understand dynamic languages (wiki) you should know what is static and late binding are.  In Static binding method is bound at compile time. If a suitable method does not exist at compile time, it'll give an error.

E.g: 
  • ActionScript
  • JavaScript
  • Clojure
  • Objective-C
  • Perl
  • PHP
  • Python
  • Java (using reflection)
Prior to C# 4.0, C# was not a dynamic language, but with C# 4.0, it's main focus was to have interoperability with partially or fully dynamically typed languages and frameworks such as Dynamic Language Runtime and COM. 

Dynamic Language Runtime (DLR) runs on top of CLR provides services to different dynamic languages. (note that dynamic == DLR). See Dynamic Programming in .NET (MSDN)

What's so appealing about dynamic languages

Static Languages

Types of variables are known at compile time. They allow IDEs and compilers to detect programmer errors as early as possible.

https://www.google.com/search?q=static+languages&ie=utf-8&oe=utf-8


Assembly language

Is a low level programming language in which there is a strong relationship between the language instructions and machine code instructions. Assembly languages are specific to computer architectures whereas high level languages are portable across architectures (but require compiling)

Assembly language (wiki)

Concurrent

http://programmers.stackexchange.com/questions/121128/modern-programming-language-with-intuitive-concurrent-programming-abstractions
http://en.wikipedia.org/wiki/Concurrent_computing

Declarative

Is a programming paradigm, which describes logic of computations without describing its control flow. 

E.g: database query languages, regular expressions, functional programming, etc.

Functional

It is a part of declarative programming paradigm. 

Imperative

Describes computation in terms of statements that change a program state.  
http://en.wikipedia.org/wiki/Imperative_programming

Aspect oriented programming

Aims to increase modularity by allowing the separation of cross cutting concerns. 
 

Multi-paradigm

http://en.wikipedia.org/wiki/Comparison_of_multi-paradigm_programming_languages

Object oriented

based on objects

Procedural

Instructions about what to do step by step.
https://www.google.com/search?q=procedural+language&ie=utf-8&oe=utf-8

Scripting

Dynamic language
https://www.google.com/search?q=scripting+language&ie=utf-8&oe=utf-8

XML based

0 comments:

Post a Comment

Powered by Blogger.


Software Architect at Surge Global/ Certified Scrum Master

Experienced in Product Design, Software Engineering, Team management and Practicing Agile methodologies.

Search This Blog

Facebook