I am writing this fun blog while learning different Programming Languages as a part of my college project (gaining insight into different programming languages and understanding different paradigms of programming.)
General Concepts-
Here is a quick overview on Fundamentals of Programming Languages :
Similar to human interface languages, which have their own set of rules that have to be followed in order to write correctly in that language, programming languages also follow certain rules.
Classification of programming languages on the basis of -
- Programming Paradigms
- Programming Models
- Type System
1) Programming Paradigms
Programming Paradigm is a style, technique, or way of writing a program to solve a problem.There are two primary programming paradigms:-
- Imperative :- Imperative programming is the oldest programming paradigm.Programs in which we need to clearly define the sequence of instructions for the computer are imperative.
- Declarative:- In the declarative programming paradigm, we simply tell the problem to the computer and let the computer decide what action to take. In other words, we just need to express the logic of the computation without talking about its control flow.
2) Programming Models
Programming Models :- Programming Model is a set of concepts used to create software, which are mainly used to guide the development of programming languages. The programming model acts as a bridge between algorithms and actual implementations. Languages can be classified into many, many models.
-
Procedural Oriented : The program in which code is written in step wise procedure mainly in the form of sub-functions is Procedural Oriented.This is derived from structured programming.For example C language.
-
Purely Object Oriented : Languages in which everything is treated consistently as an object, from primitives such as characters and integers, all the way up to whole classes, blocks, modules,etc.Ruby is one such language.
-
Purely Functional : Languages in which programs are constructed by applying and composing functions.Here, functions also do not have any side-effects in other words no function can alter the internal state of some variable.Haskell is one such language.
-
Logic Programming : Languages in which a program is written as a set of sentences in logical form.For these, PROLOG(programming in logic) is the best known example. Here, a program is executed by an “inference engine” that answers a query by searching these relations systematically to make inferences that will answer a query.
3) Type System
In programming languages, a type system is a logical system comprising a set of rules that assigns a property called a type to the various constructs of a computer program, such as variables, expressions, functions or modules.
- A. Strong vs Weak typing:
- B. Static vs Dynamic 1 typing:
- C. Manifest vs Inferred:
- D. Nominal vs Structural:
- E. Duck Typing:
This project comprises of following six major languages:
Python
JavaScript
Ruby
Go
Scala
Julia
More Info about above languages and tasks can be found in respective folders.