A figura abaixo mostra alguns dos passos necessários para o desenvolvimento de um programa em linguagem de alto nível:

O primeiro passo é a edição do programa, em seguida deve ser executado o compilador que irá traduzir o programa de linguagem de alto nível para linguagem de montagem. Em seguida deve ser executado o montador que irá traduzir o programa de linguagem de montagem para linguagem de máquina. Finalmente o programa em linguagem de máquina é carregado na memória do computador e executado. Observe que em alguns sistemas de computação o compilador faz a tradução direta da linguagem de alto-nível para linguagem de máquina. Nesta figura estamos fazendo várias simplificações por motivos didáticos.
No caso desta disciplina o aluno deverá escolher um "editor de texto" entre os vários disponíveis para cada plataforma, além do editor a escolha "oficial" da disciplina são os programas "javac" e "java". O compilador "javac" recebe um arquivo contendo um programa em java e gera a linguagem de máquina correspondente à chamada plataforma Java. As instruções em linguagem de máquina Java correspondem aos chamados "bytecodes". Nesta disciplina não iremos discutir a linguagem de máquina Java, observe que o compilador "javac" não gera linguagem de montagem, o "javac" gera diretamente linguagem de máquina (bytecodes). Um programa em linguagem de máquina Java é carregado e executado por um programa denominado "carregador - interpretador"; o nome deste programa é "java". De uma maneira sintética:
1) Deve ser executado um editor para produzir o arquivo contendo o programa em Java.
2) Deve ser executado o compilador "javac" para ler o programa em Java e gerar o arquivo que contém linguagem de máquina Java (bytecodes).
3) Deve ser executado o interpretador "java" para ler os códigos em linguagem de máquina e interpretar o programa.
Quando o código de máquina é executado por um programa denominamos este programa de interpretador. Quando o código de máquina é executado diretamente pelo hardware, ou seja por um processador, dizemos que o compilador gera código de máquina "nativo"ou linguagem de máquina nativa. No primeiro caso o código, em geral, não é "nativo".
Se o aluno preferir ele poderá usar um ambiente computacional chamado IDE (Ambiente Integrado de Desenvolvimento - AID). Um IDE Java incorpora um editor, um compilador, um interpretador além de outras ferramentas de grande utilidade tal como o "depurador". Os programas podem conter além de erros sintáticos, que são capturados pelo compilador, os denominados erros semânticos. O compilador não gera código para programas com erros sintáticos. Mas o compilador gera código para programas com erros semânticos. Um exemplo bem simples de erro semântico é um programa que deve somar dois números e ao invés disso, por algum motivo, um número é subtraido do outro. O resultado gerado pelo programa provavelmente estará errado e existem ferramentas que auxiliam na tarefa de descobrir o que foi feito de errado e em que parte do programa. Este tipo de ferramenta é denominada ferramento de depuração (debugger).