Featured Post

Why this blog? What's it about? What's the format?

FORMAT For Fall 2021, the focus is mainly on Python, C++, and Digital Hardware There are videos here from other sources / creators There are...

Right click image below, then "open link in new tab"

Right click image below, then "open link in new tab"
Right click image above, then "open link in new tab"

Search This Blog

Thursday, September 30, 2021

Eat, Sleep, Code / Learn to Code, Repeat !

Image credit: R. Sandos. From the link:




















This is my life right now! 

Eat, Sleep, Code / Learn to Code, Repeat ! 

My ambition is to start several multi-million Apps, projects, ventures and companies. I already have a registered corporation that is still a baby. When you apply technology to business, medicine, retail, law, governance, supply chain, logistics, politics, and so on, the confluence creates magic ! 

Cheers, 

Jerry

Monday, September 27, 2021

What is a Programming Language? History, Basics, Intro etc. from a few sources...

INTRODUCTION

Check out this awesome video from Study.com at this link:

From the link of Codecademy:

“Put simply, programming is giving a set of instructions to a computer to execute. If you’ve ever cooked using a recipe before, you can think of yourself as the computer and the recipe’s author as a programmer. The recipe author provides you with a set of instructions which you read and then follow. The more complex the instructions, the more complex the result!”

Programming languages are the tools we use to write instructions for computers to follow. 

Computers “think” in binary — strings of 1s and 0s. Programming languages allow us to translate the 1s and 0s into something that humans can understand and write. A programming language is made up of a series of symbols that serves as a bridge that allow humans to translate our thoughts into instructions computers can understand.

Low-Level vs. High-Level Programming Languages

Programming languages fall into two different classifications - Low-level and High-level.

Low-level programming languages are closer to machine code, or binary. Therefore, they’re more difficult for humans to read (although they’re still easier to understand than 1s and 0s). The benefit of low-level languages is that they’re fast and offer precise control over how the computer will function.

High-level programming languages are closer to how humans communicate. High-level languages use words (like object, order, run, class, request, etc.) that are closer to the words we use in our everyday lives. This means they’re easier to program in than low-level programming languages, although they do take more time to translate into machine code for the computer.

As computers have become more powerful, the difference in runtime between low-level and high-level programming languages is often only milliseconds. As a result, high-level languages do the trick in most scenarios.

Most popular programming languages

There are tons of programming languages out there that allow you to do all sorts of things, from building virtual reality experiences to creating video games and more. There’s even a programming language that consists entirely of emojis!

In this section, we’ll break down some of the most popular programming languages — and what they’re used for. GitHub’s PYPL Index ranks programming languages according to how often tutorials are searched on Google. 

The most popular programming languages include the following:

Python: Python is a versatile, general-purpose programming language. It can be used in a variety of fields from data science and machine learning to web development and is a great first language to learn.

Java: Another language that’s great when you’re starting out, Java can be used for many things, including mobile applications, software development, and large systems development. AP Computer Science is currently taught in Java.

JavaScript: JavaScript is a front-end and back-end friendly language that enables web applications, game development, and mobile applications.

C#: C#, Microsoft’s popular programming language, can be used for a wide variety of applications, including game development, enterprise software, video games, mobile apps, and more.

C++: C++ is one of the most powerful programming languages and is used in a wide range of industries, including VR, software and game development, robotics, and scientific computing.

PHP: PHP is a widely-used server-side language. It’s a great choice if you’re interested in building dynamic web applications and works well with databases and HTML.

R: R is a statistical programming language that’s popular among data scientists. It’s used for answering questions with data analysis and creating data visualizations..

Swift: Swift is Apple’s programming language and is a must if you plan to develop applications for iOS and MacOS.

Kotlin: Kotlin is an open-source programming language developed by JetBrains. It’s popular for web development, Android development, and more.

From the link:

A programming language is a formal language comprising a set of strings that produce various kinds of machine code output. Programming languages are one kind of computer language, and are used in computer programming to implement algorithms.

Most programming languages consist of instructions for computers. There are programmable machines that use a set of specific instructions, rather than general programming languages. 

Thousands of different programming languages have been created, and more are being created every year. 

Many programming languages are written in an imperative form (i.e., as a sequence of operations to perform) while other languages use the declarative form (i.e. the desired result is specified, not how to achieve it).

The description of a programming language is usually split into the two components of syntax (form) and semantics (meaning). 

Some languages are defined by a specification document (for example, the C programming language is specified by an ISO Standard) while other languages (such as Perl) have a dominant implementation that is treated as a reference. Some languages have both, with the basic language defined by a standard and extensions taken from the dominant implementation being common.

Programming language theory is a subfield of computer science that deals with the design, implementation, analysis, characterization, and classification of programming languages.

HISTORY:

From the link:

Ever since the invention of Charles Babbage’s difference engine in 1822, computers have required a means of instructing them to perform a specific task. 

This means of instructing computers is known as a programming language

Computer languages were first composed of a series of steps to wire a particular program; these morphed into a series of steps keyed into the computer and then executed; later these languages acquired advanced features such as logical branching and object orientation. 

The computer languages of the last fifty years have come in two stages:
  • The first major languages and 
  • The second major languages, which are in use today.
In the beginning, Charles Babbage’s difference engine could only be made to execute tasks by changing the gears which executed the calculations. Thus, the earliest form of a computer language was physical motion. Eventually, physical motion was replaced by electrical signals when the US Government built the ENIAC in 1942. It followed many of the same principles of Babbage’s engine and hence, could only be “programmed” by presetting switches and rewiring the entire system for each new “program” or calculation. This process proved to be very tedious.

In 1945, John Von Neumann was working at the Institute for Advanced Study. He developed two important concepts that directly affected the path of computer programming languages. 

(1) The first was known as “shared-program technique” (www.softlord.com). This technique stated that the actual computer hardware should be simple and not need to be hand-wired for each program. Instead, complex instructions should be used to control the simple hardware, allowing it to be reprogrammed much faster.

(2) The second concept was also extremely important to the development of programming languages. Von Neumann called it “conditional control transfer” (www.softlord.com). This idea gave rise to the notion of subroutines, or small blocks of code that could be jumped to in any order, instead of a single set of chronologically ordered steps for the computer to take. The second part of the idea stated that computer code should be able to branch based on logical statements such as IF (expression) THEN, and looped such as with a FOR statement. “Conditional control transfer” gave rise to the idea of “libraries,” which are blocks of code that can be reused over and over. 

Around this time, Konrad Zuse, a German, was inventing his own computing systems independently and developed many of the same concepts, both in his machines and in the Plankalkul programming language. Alas, his work did not become widely known until much later. For more information, see this website: http://www.epemag.com/zuse/, or the entries on Wikipedia: Konrad Zuse and Plankalkul.

In 1949, a few years after Von Neumann’s work, the language Short Code appeared (www.byte.com). It was the first computer language for electronic devices and it required the programmer to change its statements into 0’s and 1’s by hand. Still, it was the first step towards the complex languages of today

In 1951, Grace Hopper wrote the first compiler, A-0 (www.byte.com). 

A compiler is a program that turns the language’s statements into 0’s and 1’s for the computer to understand. This lead to faster programming, as the programmer no longer had to do the work by hand.

In 1957, the first of the major languages appeared in the form of FORTRAN. Its name stands for FORmula TRANslating system. The language was designed at IBM for scientific computing. The components were very simple, and provided the programmer with low-level access to the computers innards. Today, this language would be considered restrictive as it only included IF, DO, and GOTO statements, but at the time, these commands were a big step forward. The basic types of data in use today got their start in FORTRAN, these included logical variables (TRUE or FALSE), and integer, real, and double-precision numbers.

Though FORTAN was good at handling numbers, it was not so good at handling input and output, which mattered most to business computing. 

Business computing started to take off in 1959, and because of this, COBOL was developed. It was designed from the ground up as the language for businessmen

Its only data types were numbers and strings of text. It also allowed for these to be grouped into arrays and records, so that data could be tracked and organized better. It is interesting to note that a COBOL program is built in a way similar to an essay, with four or five major sections that build into an elegant whole. COBOL statements also have a very English-like grammar, making it quite easy to learn. All of these features were designed to make it easier for the average business to learn and adopt it.

In 1958, John McCarthy of MIT created the LISt Processing (or LISP) language. It was designed for Artificial Intelligence (AI) research. Because it was designed for a specialized field, the original release of LISP had a unique syntax: essentially none. Programmers wrote code in parse trees, which are usually a compiler-generated intermediary between higher syntax (such as in C or Java) and lower-level code. Another obvious difference between this language (in original form) and other languages is that the basic and only type of data is the list; in the mid-1960’s, LISP acquired other data types. A LISP list is denoted by a sequence of items enclosed by parentheses. 

LISP programs themselves are written as a set of lists, so that LISP has the unique ability to modify itself, and hence grow on its own. The LISP syntax was known as “Cambridge Polish,” as it was very different from standard Boolean logic (Wexelblat, 177):

x V y - Cambridge Polish, what was used to describe the LISP program
OR(x,y) - parenthesized prefix notation, what was used in the LISP program
x OR y - standard Boolean logic

LISP remains in use today because its highly specialized and abstract nature.

The Algol language was created by a committee for scientific use in 1958. It’s major contribution is being the root of the tree that has led to such languages as Pascal, C, C++, and Java. It was also the first language with a formal grammar, known as Backus-Naar Form or BNF (McGraw-Hill Encyclopedia of Science and Technology, 454). Though Algol implemented some novel concepts, such as recursive calling of functions, the next version of the language, Algol 68, became bloated and difficult to use (www.byte.com). This lead to the adoption of smaller and more compact languages, such as Pascal.

Pascal was begun in 1968 by Niklaus Wirth. Its development was mainly out of necessity for a good teaching tool. In the beginning, the language designers had no hopes for it to enjoy widespread adoption. Instead, they concentrated on developing good tools for teaching such as a debugger and editing system and support for common early microprocessor machines which were in use in teaching institutions.

Pascal was designed in a very orderly approach, it combined many of the best features of the languages in use at the time, COBOL, FORTRAN, and ALGOL. 

While doing so, many of the irregularities and oddball statements of these languages were cleaned up, which helped it gain users (Bergin, 100-101). The combination of features, input/output and solid mathematical features, made it a highly successful language. Pascal also improved the “pointer” data type, a very powerful feature of any language that implements it. It also added a CASE statement, that allowed instructions to to branch like a tree in such a manner:

CASE expression OF
   possible-expression-value-1:
       statements to execute...
   possible-expression-value-2:
       statements to execute...
END

Pascal also helped the development of dynamic variables, which could be created while a program was being run, through the NEW and DISPOSE commands. However, Pascal did not implement dynamic arrays, or groups of variables, which proved to be needed and led to its downfall (Bergin, 101-102). Wirth later created a successor to Pascal, Modula-2, but by the time it appeared, C was gaining popularity and users at a rapid pace.

C Language was developed in 1972 by Dennis Ritchie while working at Bell Labs in New Jersey.

The transition in usage from the first major languages to the major languages of today occurred with the transition between Pascal and C

Its direct ancestors are B and BCPL, but its similarities to Pascal are quite obvious. All of the features of Pascal, including the new ones such as the CASE statement are available in C. C uses pointers extensively and was built to be fast and powerful at the expense of being hard to read. But because it fixed most of the mistakes Pascal had, it won over former-Pascal users quite rapidly.

Ritchie developed C for the new Unix system being created at the same time. Because of this, C and Unix go hand in hand. 

Unix gives C such advanced features as dynamic variables, multitasking, interrupt handling, forking, and strong, low-level, input-output. Because of this, C is very commonly used to program operating systems such as Unix, Windows, the MacOS, and Linux.

In the late 1970’s and early 1980’s, a new programing method was being developed. It was known as Object Oriented Programming, or OOP

Objects are pieces of data that can be packaged and manipulated by the programmer. 

Bjarne Stroustroup liked this method and developed extensions to C known as “C With Classes.” This set of extensions developed into the full-featured language C++, which was released in 1983.

C++ was designed to organize the raw power of C using OOP, but maintain the speed of C and be able to run on many different types of computers. 

C++ is most often used in simulations, such as games. C++ provides an elegant way to track and manipulate hundreds of instances of people in elevators, or armies filled with different types of soldiers. It is the language of choice in today’s AP Computer Science courses.

In the early 1990’s, interactive TV was the technology of the future. 

Sun Microsystems decided that interactive TV needed a special, portable (can run on many types of machines), language. This language eventually became Java. 

In 1994, the Java project team changed their focus to the web, which was becoming “the cool thing” after interactive TV failed. 

The next year, Netscape licensed Java for use in their internet browser, Navigator. 

At this point, Java became the language of the future and several companies announced applications which would be written in Java, none of which came into use.

Though Java has very lofty goals and is a text-book example of a good language, it may be the “language that wasn’t.” 

Java has serious optimization problems, meaning that programs written in it run very slowly. And Sun has hurt Java’s acceptance by engaging in political battles over it with Microsoft. But Java may wind up as the instructional language of tomorrow as it is truly object-oriented and implements advanced techniques such as true portability of code and garbage collection.

Visual Basic is often taught as a first programming language today as it is based on the BASIC language developed in 1964 by John Kemeny and Thomas Kurtz. 

BASIC is a very limited language and was designed for non-computer science people. Statements are chiefly run sequentially, but program control can change based on IF..THEN, and GOSUB statements which execute a certain block of code and then return to the original point in the program’s flow.

Microsoft has extended BASIC in its Visual Basic (VB) product

The heart of VB is the form, or blank window on which you drag and drop components such as menus, pictures, and slider bars. These items are known as “widgets.” Widgets have properties (such as its color) and events (such as clicks and double-clicks) and are central to building any user interface today in any language. VB is most often used today to create quick and simple interfaces to other Microsoft products such as Excel and Access without needing a lot of code, though it is possible to create full applications with it.

Perl has often been described as the “duct tape of the Internet,” because it is most often used as the engine for a web interface or in scripts that modify configuration files. It has very strong text matching functions which make it ideal for these tasks. Perl was developed by Larry Wall in 1987 because the Unix sed and awk tools (used for text manipulation) were no longer strong enough to support his needs. Depending on whom you ask, Perl stands for Practical Extraction and Reporting Language or Pathologically Eclectic Rubbish Lister.

Programming languages have been under development for years and will remain so for many years to come. 
  • They got their start with a list of steps to wire a computer to perform a task. 
  • These steps eventually found their way into software and began to acquire newer and better features. 
  • The first major languages were characterized by the simple fact that they were intended for one purpose and one purpose only, 
  • However, the languages of today are differentiated by the way they are programmed in, as they can be used for almost any purpose. 
And perhaps the languages of tomorrow will be more natural with the invention of quantum and biological computers.

More at the Wikipedia link for the History of Programming Languages

BASICS

From the link:

A computer is a device that can accept human instruction, processes it, and responds to it or a computer is a computational device that is used to process the data under the control of a computer program. Program is a sequence of instruction along with data.

The basic components of a computer are:
  • Input unit
  • Central Processing Unit(CPU)
  • Output unit
The CPU is further divided into three parts:
  • Memory unit
  • Control unit
  • Arithmetic Logic unit
CPU is called the brain of our computer because it accepts data, provides temporary memory space to it until it is stored(saved) on the hard disk, performs logical operations on it and hence processes (here also means converts) data into information. 

A computer consists of hardware and software. 
  • Software is a set of programs that performs multiple tasks together. 
  • An operating system is also software (system software) that helps humans to interact with the computer system
A program is a set of instructions given to a computer to perform a specific operation. or computer is a computational device that is used to process the data under the control of a computer program. While executing the program, raw data is processed into the desired output format. 

These computer programs are written in a programming language which are high-level languages. 

High level languages are nearly human languages that are more complex than the computer understandable language which are called machine language, or low level language. So after knowing the basics, we are ready to create a very simple and basic program. 

Just like we humans have different languages to communicate with each other, likewise, we have different languages like C, C++, C#, Java, python, etc to communicate with the computers. 

The computer only understands binary language (the language of 0’s and 1’s) also called machine-understandable language or low-level language but the programs we are going to write are in a high-level language which is almost similar to human language.

The piece of code given below performs a basic task of printing “hello world! I am learning programming” on the console screen. We must know that keyboard, scanner, mouse, microphone, etc are various examples of input devices, and monitor(console screen), printer, speaker, etc are examples of output devices.
 
main()
 {
 clrscr();
 printf(“hello world! I am learning to program");
 getch();
 } 

The main() is a standard function that you will always include in any program that you are going to create from now onwards. 

Note that the execution of the program starts from the main() function. The clrscr() function is used to see only the current output on the screen while the printf() function helps us to print the desired output on the screen. Also, getch() is a function that accepts any character input from the keyboard. In simple words, we need to press any key to continue(some people may say that getch() helps in holding the screen to see the output).

Between high-level language and machine language, there are assembly languages also called symbolic machine code. 

Assembly languages are particularly computer architecture specific. 

Utility program (Assembler) is used to convert assembly code into executable machine code. High Level Programming Language is portable but requires Interpretation or compiling to convert it into a machine language that is computer understood.

Characteristics of a programming Language:
  1. A programming language must be simple, easy to learn and use, have good readability, and be human recognizable
  2. Abstraction is a must-have Characteristics for a programming language in which the ability to define the complex structure and then its degree of usability comes
  3. A portable programming language is always preferred
  4. Programming language’s efficiency must be high so that it can be easily converted into a machine code and executed consumes little space in memory
  5. A programming language should be well structured and documented so that it is suitable for application development
  6. Necessary tools for the development, debugging, testing, maintenance of a program must be provided by a programming language
  7. A programming language should provide a single environment known as Integrated Development Environment(IDE)
  8. A programming language must be consistent in terms of syntax and semantics
Most Popular Programming Languages:
  • C
  • Python
  • C++
  • Java
  • SCALA
  • C#
  • R
  • Ruby
  • Go
  • Swift
  • JavaScript
There have been many programming languages. Some of them are listed below:
  • Python 
  • C++
  • C# 
  • Ruby
  • COBOL 
  • ADA 
  • Java
  • Fortran 
  • BASIC 
  • Altair BASIC
  • True BASIC 
  • Visual BASIC
  • GW BASIC
  • QBASIC 
  • PureBASIC 
  • PASCAL
  • Turbo Pascal 
  • GO 
  • ALGOL
  • LISP 
  • SCALA 
  • Swift
  • Rust 
  • Prolog 
  • Reia
  • Racket 
  • Scheme 
  • Shimula
  • Perl 
  • PHP 
  • Java Script
  • CoffeeScript 
  • VisualFoxPro 
  • Babel
  • Logo
  • Lua
  • Smalltalk
  • Matlab F F#
  • Dart 
  • Datalog 
  • dbase
  • Haskell 
  • dylan 
  • Julia
  • ksh 
  • metro 
  • Mumps
  • Nim 
  • OCaml 
  • pick
  • TCL 
  • CPL
  • Curry 
  • ActionScript 
  • Erlang
  • Clojure 
  • DarkBASCIC 
  • Assembly
Hierarchy of Computer language:
  • HIGH-LEVEL LANGUAGE --> 
  • ASSEMBLEY LANGUAGE --> 
  • MACHINE LANGUAGE --> 
  • COMPUTER HARDWARE

What is a programming language?

Binary

Sunday, September 26, 2021

History of Excel - Spreadsheets & Visicalc - Excel TV Topics

2 guys who invented the first-ever spreadsheet

A Brief History of Spreadsheets

Required Cybersecurity Skill: Understanding Basic Networking Concepts

VIMP ! Clean Code - Uncle Bob / Lesson 1

4. Assembly Language & Computer Architecture

Comparing C to machine language

What Is Assembly Language?

What is a kernel - Gary explains

How do computers read code?

Assembly Language and Machine Code

Is it worth learning assembly language today? | One Dev Question

Why People Use Python Even If It’s Slow

Good coding habits to start developing NOW

Introduction To Lists In Python (Python Tutorial #4)

So funny !!! Every Type of Programmer

Lotus 1-2-3 Release 4 MS-DOS: Unboxing & Demo