Editor and Assembler:
To write a program in any of the programming languages requires an editor. This is a program that is used to create text files. While saving the program, filename and extension as per programming language is required to be given e.g in C programming language f1.c, in C++ f1.cpp or f1.C, in Java f1.java etc. The extension may also depend on the conventions of the operating system used, for instance, in unix the extension for a C++ program is .C while for Windows it would be .cpp. There are different types of editors. Some of the programming languages have some specific built in editors.

A Programming Language is different from machine language, which is understood by a computer in the sense that it can be directly executed. Hence a program in any higher level programming language like C requires a translation process that can translate the source program into machine code so that it can be executed by the computer.
As you may already know from a previous unit, programming languages can be low level languages or high level languages.
Assembly language is a low level programming language similar to machine language, but far easier to write and understand because machine language binary instructions and operands are replaced by mnemonics that are comprehensible to humans. Just As a program written in programming language requires a translator to translate the source program in machine code, a program written in assembly language uses the utility named as assembler for translation purpose. Assembly language is the most basic programming language available for any processor.
With assembly language, a programmer works only with operations implemented directly on the physical CPU. Assembly language lacks high-level conveniences such as variables and functions, and it is not portable between various families of processors.