Programming languages are formal languages used to communicate instructions to a computer. They are used to write software, which is a set of instructions that a computer can understand and execute. A programming language consists of a set of rules, syntax, and semantics that are used to write computer programs.
There are many programming languages, each with its own strengths and weaknesses, and each designed for different purposes. Some programming languages are general-purpose, meaning they can be used for a wide range of applications, while others are designed for specific tasks or platforms. Examples of popular programming languages include C++, Java, Python, JavaScript, Ruby, and Swift.
Programmers use programming languages to write code, which is a set of instructions that tells a computer what to do. Code can range from simple instructions to complex algorithms, and it can be written for a variety of applications, including web development, mobile app development, game development, scientific computing, and more.
Types of Programming Languages
Programming languages can be devided into one or more of the following types :
Procedural Programming Languages : These languages follow a set of steps or procedures to execute a program. Examples include C, Fortran, Pascal, BASIC and COBOL.
Object-Oriented Programming Languages : These languages are based on the concept of objects, which have attributes and methods. Examples include Java, Python, C++, and Ruby.
Functional Programming Languages : These languages treat computation as the evaluation of mathematical functions and avoid changing state and mutable data. Examples include Haskell, Lisp, and ML.
Scripting Languages : These languages are interpreted rather than compiled and are designed to automate tasks or perform simple tasks. Examples include Bash, Python, PHP, and Perl.
Markup Languages : These languages are used to define and format text, data, and other content for display on the web. Examples include HTML, XML, and JSON.
Query Languages : These languages are used to retrieve and manipulate data stored in databases. Examples include SQL, XQuery, and SPARQL.
Domain-Specific Languages : These languages are designed for specific tasks or industries and have a limited scope of use. Examples include MATLAB, R, and VHDL.
Low-Level Languages : These languages interact directly with the hardware and are used to write operating systems, device drivers, and other system-level software. Examples include Assembly language and machine language.
These are just a few examples of the many types of programming languages in use today.
Why Should You Learn How To Code?
You can automate many tasks which usually take lots of time to complete.
To understand others program and exploits and it will also help you in custom exploitation.
Most importently, it prevents you from becoming a script kiddies.
Programming Languages You Should Learn
Wikipedia claims there are approximately 700 programming languages, while others say that number is closer to 9000! The truth is, there've been countless programming languages created throughout history. ( List of programming languages - Wikipedia)
But here i will mention only those programming languages that will help you to becoming a good hacker.
[some of these are not technically a programming language. They are markup, style sheet, and database management languages that are included in the list for those who may consider them as a programming language.]
Assembly
In computer programming, assembly language, often abbreviated asm, is any low-level programming language in which there is a very strong correspondence between the instructions in the language and the architecture's machine code instructions.
DATA SEGMENT MESSAGE DB "Hello, World!$"ENDS ASSUME DS:DATA CS:CODESTART: MOV AX,DATA MOV DS,AX LEA DX,MESSAGE MOV AH,9 INT 21H MOV AH,4CH INT 21H
Bash is a Unix shell and command language written by Brian Fox for the GNU Project as a free software replacement for the Bourne shell. Bash is a command processor that typically runs in a text window where the user types commands that cause actions.
A batch file is a script file in DOS, OS/2 and Microsoft Windows. It consists of a series of commands to be executed by the command-line interpreter, stored in a plain text file.
C is a general-purpose, procedural computer programming language supporting structured programming, lexical variable scope, and recursion, with a static type system. By design, C provides constructs that map efficiently to typical machine instructions.
Go is a statically typed, compiled programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson. Go is syntactically similar to C, but with memory safety, garbage collection, structural typing, and CSP-style concurrency.
package mainimport "fmt"func main() { fmt.Println("Hello, World!")}go run hello-world.go
Hypertext Markup Language is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScript.
JavaScript, often abbreviated as JS, is a programming language that conforms to the ECMAScript specification. JavaScript is high-level, often just-in-time compiled, and multi-paradigm. It has curly-bracket syntax, dynamic typing, prototype-based object-orientation, and first-class functions.
Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was officially changed to Raku in October 2019.
PHP is a general-purpose scripting language especially suited to web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1994. The PHP reference implementation is now produced by The PHP Group.
PowerShell is a task automation and configuration management framework from Microsoft, consisting of a command-line shell and the associated scripting language.
Python is an interpreted, high-level and general-purpose programming language. Python's design philosophy emphasizes code readability with its notable use of significant whitespace.
R is a programming language and free software environment for statistical computing and graphics supported by the R Foundation for Statistical Computing. The R language is widely used among statisticians and data miners for developing statistical software and data analysis.
Ruby is an interpreted, high-level, general-purpose programming language. It was designed and developed in the mid-1990s by Yukihiro "Matz" Matsumoto in Japan. Ruby is dynamically typed and uses garbage collection.
Rust is a multi-paradigm programming language designed for performance and safety, especially safe concurrency. Rust is syntactically similar to C++, but can guarantee memory safety by using a borrow checker to validate references.
SQL is a domain-specific language used in programming and designed for managing data held in a relational database management system, or for stream processing in a relational data stream management system.
Visual Basic is a third-generation event-driven programming language from Microsoft known for its Component Object Model programming model first released in 1991 and declared legacy during 2008. Microsoft intended Visual Basic to be relatively easy to learn and use.
VBScript is an Active Scripting language developed by Microsoft that is modeled on Visual Basic. It allows Microsoft Windows system administrators to generate powerful tools for managing computers with error handling, subroutines, and other advanced programming constructs.
An esoteric programming language (sometimes shortened to esolang) is a programming language designed to test the boundaries of computer programming language design, as a proof of concept, as software art, as a hacking interface to another language (particularly functional programming or procedural programming languages), or as a joke. The use of esoteric distinguishes these languages from programming languages that working developers use to write software. Usually, an esolang's creators do not intend the language to be used for mainstream programming, although some esoteric features, such as visuospatial syntax, have inspired practical applications in the arts. Such languages are often popular among hackers and hobbyists.
These languages are mostly used in CTF Challenges. there is no need to learn them completely just understand that whenever you look at a code or script you can identify what programming language it is. so here i would like to mention some Esolangs.
Befunge is a stack-based, reflective, esoteric programming language. It differs from conventional languages in that programs are arranged on a two-dimensional grid. "Arrow" instructions direct the control flow to the left, right, up or down, and loops are constructed by sending the control flow in a cycle.
Brainfuck is an esoteric programming language created in 1993 by Urban Müller. Notable for its extreme minimalism, the language consists of only eight simple commands and an instruction pointer. While it is fully Turing complete, it is not intended for practical use, but to challenge and amuse programmers.
Chef is a programming language in which programs look like recipes.
Hello World Souffle.This recipe prints the immortal words "Hello world!", in a basically brute force way. It also makes a lot of food for one person.Ingredients.72 g haricot beans101 eggs108 g lard111 cups oil32 zucchinis119 ml water114 g red salmon100 g dijon mustard33 potatoesMethod.Put potatoes into the mixing bowl. Put dijon mustard into the mixing bowl. Put lard into the mixing bowl. Put red salmon into the mixing bowl. Put oil into the mixing bowl. Put water into the mixing bowl. Put zucchinis into the mixing bowl. Put oil into the mixing bowl. Put lard into the mixing bowl. Put lard into the mixing bowl. Put eggs into the mixing bowl. Put haricot beans into the mixing bowl. Liquefy contents of the mixing bowl. Pour contents of the mixing bowl into the baking dish.Serves 1.
The COW programming language is an esoteric programming language created by Sean Heber in 2003. It is a Brainfuck variant designed humorously with Bovinae in mind. COW has twelve instructions (four more than Brainfuck) and is Turing-complete. Most instructions are moos, only the capitalization varies: mOo, moO, mOO, Moo, and so on. MMM, OOO, oom and OOM are the exceptions. All other character combinations are ignored and treated as comments.
Intercal (full name is Compiler Language With No Pronounceable Acronym, so short name is rather random) is one of the oldest esoteric programming languages. It was developed in 1972 as a parody on other languages that existed at that time; modern esoteric languages beat it in weirdness, but some aspects of it, like character output, are beyond compare. Its reference manual is a work of art on itself (unlike modern languages, which concentrate on meaning of commands, not on literal description), with special names for nearly every common thing. One of the features INTERCAL is famous for is its PLEASE modifier: it serves no other purpose than to make programmer polite, but not too polite.
DO ,1 <- #13PLEASE DO ,1 SUB #1 <- #238DO ,1 SUB #2 <- #108DO ,1 SUB #3 <- #112DO ,1 SUB #4 <- #0DO ,1 SUB #5 <- #64DO ,1 SUB #6 <- #194PLEASE DO ,1 SUB #7 <- #48DO ,1 SUB #8 <- #26DO ,1 SUB #9 <- #244PLEASE DO ,1 SUB #10 <- #168DO ,1 SUB #11 <- #24DO ,1 SUB #12 <- #16DO ,1 SUB #13 <- #162PLEASE READ OUT ,1PLEASE GIVE UP
JSFuck is an esoteric programming style of JavaScript, where code is written using only six characters: [, ], (, ), !, and +. Unlike Brainfuck, which requires its own compiler or interpreter, JSFuck is valid JavaScript code, meaning JSFuck programs can be run in any web browser or engine that interprets JavaScript.
LOL Code is an esoteric programming language inspired by lolspeak, the language expressed in examples of the lolcat Internet meme. The language was created in 2007 by Adam Lindsay, researcher at the Computing Department of Lancaster University. The language is not clearly defined in terms of operator priorities and correct syntax, but several functioning interpreters and compilers exist. One interpretation of the language has been proven Turing-complete.
Malbolge (the 8th circle of Hell) was designed to be the most difficult and esoteric programming language. Among other features, code is self-modifying by design and the effect of an instruction depends on its address in memory.
ModiScript is an esoteric programming language that entirely consists of quotes from Indian Prime Minister Narendra Modi's speeches. The language follows many of his ideologies such as the "No import rule", in which importation of code is not allowed, consistent with his "Make in India" campaign.
Mitrooonbhaiyo aur behno "Hello, World!"Achhe din aa gaye
Pikalang is a programming language based on the BrainFuck language but whose operators are substituted by the cries of the Pokemon Pikachu.
pi pi pi pi pi pi pi pi pi pi pika pipi pi pipi pi pi pi pipi pi pi pi pi pi pi pi pipi pi pi pi pi pi pi pi pi pi pi pichu pichu pichu pichu ka chu pipi pipi pipi pi pi pikachu pipi pi pikachu pi pi pi pi pi pi pi pikachu pikachu pi pi pi pikachu pichu pichu pi pi pi pi pi pi pi pi pi pi pi pi pi pi pikachu ka ka ka ka ka ka ka ka ka ka ka ka pikachu pipi pi pi pi pi pi pi pi pi pi pi pi pi pi pi pi pikachu pipi pikachu pi pi pi pikachu ka ka ka ka ka ka pikachu ka ka ka ka ka ka ka ka pikachu pichu pichu pi pikachu
The Shakespeare Programming Language (SPL) is an esoteric programming language designed by Jon Åslund and Karl Hasselström. Like the Chef programming language, it is designed to make programs appear to be something other than programs - in this case, Shakespearean plays.
The Infamous Hello World Program.Romeo, a young man with a remarkable patience.Juliet, a likewise young woman of remarkable grace.Ophelia, a remarkable woman much in dispute with Hamlet.Hamlet, the flatterer of Andersen Insulting A/S.Act I: Hamlet's insults and flattery.Scene I: The insulting of Romeo.[Enter Hamlet and Romeo]Hamlet:You lying stupid fatherless big smelly half-witted coward!You are as stupid as the difference between a handsome rich bravehero and thyself! Speak your mind!You are as brave as the sum of your fat little stuffed misused dustyold rotten codpiece and a beautiful fair warm peaceful sunny summer'sday. You are as healthy as the difference between the sum of thesweetest reddest rose and my father and yourself! Speak your mind!You are as cowardly as the sum of yourself and the differencebetween a big mighty proud kingdom and a horse. Speak your mind.Speak your mind![Exit Romeo]Scene II: The praising of Juliet.[Enter Juliet]Hamlet:Thou art as sweet as the sum of the sum of Romeo and his horse and hisblack cat! Speak thy mind![Exit Juliet]Scene III: The praising of Ophelia.[Enter Ophelia]Hamlet:Thou art as lovely as the product of a large rural town and my amazingbottomless embroidered purse. Speak thy mind!Thou art as loving as the product of the bluest clearest sweetest skyand the sum of a squirrel and a white horse. Thou art as beautiful asthe difference between Juliet and thyself. Speak thy mind![Exeunt Ophelia and Hamlet]Act II: Behind Hamlet's back.Scene I: Romeo and Juliet's conversation.[Enter Romeo and Juliet]Romeo:Speak your mind. You are as worried as the sum of yourselfand the difference between my small smooth hamster and my nose.Speak your mind!Juliet:Speak YOUR mind! You are as bad as Hamlet! You are as small as thedifference between the square of the sum between my little ponyand your big hairy hound and the cube of your sorry littlecodpiece. Speak your mind![Exit Romeo]Scene II: Juliet and Ophelia's conversation.[Enter Ophelia]Juliet:Thou art as good as the quotient between Romeo and the sum of a smallfurry animal and a leech. Speak your mind!Ophelia:Thou art as disgusting as the quotient between Romeo and twice thedifference between a mistletoe and an oozing infected blister! Speakyour mind![Exeunt]
Unlambda, designed by David Madore in 1999, is a minimal functional esoteric programming language based on combinatory logic. Notably, it was the first functional Turing tarpit.
Whitespace uses only whitespace characters (space, tab, and return), ignoring all other characters, which can therefore be used for comments. This is the reverse of many traditional languages, which do not distinguish between different whitespace characters, treating tab and space the same. It also allows Whitespace programs to be hidden in the source code of programs in languages like C.
S S S T S S T S S S LT LS S S S S T T S S T S T LT LS S S S S T T S T T S S LT LS S S S S T T S T T S S LT LS S S S S T T S T T T T LT LS S S S S T S T T S S LT LS S S S S T S S S S S LT LS S S S S T T T S T T T LT LS S S S S T T S T T T T LT LS S S S S T T T S S T S LT LS S S S S T T S T T S S LT LS S S S S T T S S T S S LT LS S S S S T S S S S T LT LS S LLL