RoboRIO

Overview: 
Explore how programming languages make computers work and how we use those languages.
Objectives: 

Understand lower and higher levels of programming instructions. Understand compilers, compiling, linking and deployment.

Content: 

At the hardware level, computers understand one language, called machine language (also called object code). This is the set of instructions supported by the computer's processor hardware and is specific to each type of processor. This object code language is numeric in nature and expressed in binary, which is a numeric coding made up of only 1s and 0s (base 2). It is very tedious to program in binary, so higher level languages were created to make it easier to create programs. In a higher level language, you use syntax that is English like and easier to understand to express what you want the computer to do. It is the job of the higher level language to translate those written instructions into binary object code for the computer to execute. In fact, when a program file is created by a higher level language it will contain only the binary instructions for the computer, not your source code.

Typically, the programmer writes instructions in the selected higher level language, Java in our case, and these instructions or source code are stored in text form in a file. This source file is then passed to a program called a compiler which translates the source language to object code in binary form and writes that to another file called the program. An example is an .exe file on Windows. There may be an additional step called linking which is the process of combining the programmers instructions with libraries of instructions created by someone else. Sometimes the program file may be sent to another computer for execution. This is called deploying.

When the program is run by the computer, the computers operating system opens the program file, reads and executes the binary instructions it finds.

The exact steps and processes taken by each language to convert source code into an executable program may vary but will always follow this general set of steps. The process of translating from source code to a computer-usable program is called compilation or compiling. It is important to note that compilation is a one-time packaging of a certain set of source code into a program file. If the source code is modified by the programmer after compilation, the previously compiled program file will represent the same set of source code that existed at the time of compilation. In order to use whatever changes are made in the source code, the program must be recompiled.

 

Navigation:

Overview: 
Explore what programming languages are and how we use them.
Objectives: 

Gain an understand what a programming language is. Understand the difference between text based and visual languages.

Content: 

When we are programming, that is creating a program for a computer to execute, we will use a programming language. Like English or Spanish, a programming language is a written way to communicate with someone (or something). Computer languages allow you to encode the operations you wish to have the computer perform with a syntax (language) that is much easier for you to understand than the numeric language (binary) that computers understand. There are many text based languages such as Basic, C, C++, C#, Java, JavaScript, Python and many more. Each language was created for various reasons to serve varied populations of programmers. In this course we will be studying the Java programming language.

Here is the Wikipedia description of a programming language.

When we say a language is text based, we mean that the language is expressed in written statements, which are typically entered into a text file and then processed for execution by the computer. Text based languages in general provide more capability in expressing what you want the computer to do at the price of being more complex to learn and use.

Note that there are also many visual programming tools (might be a stretch to call them languages) that seek to simplify programming by allowing the user to assemble programs by manipulating pictures instead of text. Such tools have visual objects that map to functions the computer can perform and programs are created by arranging such objects on a visual workspace. Generally such tools sacrifice some amount of capability for simplicity of learning and ease of use.

Navigation:

Overview: 
Explore what it means to program and why we do it.
Objectives: 

Understand at a high level what programming is and what it means to "program".

Content: 

When used in the context of computers, programming generally means the process of creating the instructions that a computer will follow in solving a particular problem or completing some task. The product of programming is a "program", which is a package of instructions that can be executed by a computer. A program typically directs the computer to accept input of some type and produce output of some type. Programs are at the heart of all computing and are what you are using when you play games, edit documents, make calls on your phone, interact with web sites or make robots move.

Here is the Wikipedia description of programming.

A video describing programming.

Navigation:

WSA Programming the RoboRio platform with Java

WSA Intro to Pneumatics

WSA Intro to Sensors

WSA Logging

WSA Sample Robot in more Detail

WSA Programming the RoboRio

WSA Intro to the Robot Control System

Pages