Software, logiciario ou suporte logico e uma sequencia de instrucoes a serem seguidas e/ou executadas, na manipulacao, redirecionamento ou modificacao de um dado/informacao ou acontecimento. Software tambem e o nome dado ao comportamento exibido por essa sequencia de instrucoes quando executada em um computador ou maquina semelhante alem de um produto desenvolvido pela Engenharia de software, e inclui nao so o programa de computador propriamente dito, mas tambem manuais e especificacoes. Para fins contabeis e financeiros, o Software e considerado um bem de capital.[1]Este produto passa por varias etapas como: analise economica, analise de requisitos, especificacao, codificacao, teste, documentacao, Treinamento, manutencao e implantacao nos ambientes.[2]*Software como programa de computadorUm programa de computador e composto por uma sequencia de instrucoes, que e interpretada e executada por um processador ou por uma maquina virtual. Em um programa correto e funcional, essa sequencia segue padroes especificos que resultam em um comportamento desejado.[3]O termo software foi criado na decada de 1940 e e um trocadilho com o termo hardware. Hardware, em ingles, significa ferramenta fisica. Software seria tudo o que faz o computador funcionar excetuando-se a parte fisica dele.Um programa pode ser executado por qualquer dispositivo capaz de interpretar e executar as instrucoes de que e formado.Quando um software esta representado como instrucoes que podem ser executadas diretamente por um processador dizemos que esta escrito em linguagem de maquina. A execucao de um software tambem pode ser intermediada por um programa interpretador, responsavel por interpretar e executar cada uma de suas instrucoes. Uma categoria especial e notavel de interpretadores sao as maquinas virtuais, como a Maquina virtual Java (JVM), que simulam um computador inteiro, real ou imaginado.O dispositivo mais conhecido que dispoe de um processador e o computador. Atualmente, com o barateamento dos microprocessadores, existem outras maquinas programaveis, como telefone celular, maquinas de automacao industrial, calculadora, etc.*A construcao de um programa de computadorUm programa e um conjunto de instrucoes para o processador (linguagem de maquina). Entretanto, pode-se utilizar linguagens de programacao, que traduza comandos em instrucoes para o processador.Normalmente, programas de computador sao escritos em linguagens de programacao, pois estas foram projetadas para aproximar-se das linguagens usadas por seres humanos. Raramente a linguagem de maquina e usada para desenvolver um programa. Atualmente existe uma quantidade muito grande de linguagens de programacao, dentre elas as mais populares no momento sao Java, Visual Basic, C, C++, PHP, dentre outras.[4]Alguns programas feitos para usos especificos, como por exemplo software embarcado ou software embutido, ainda sao feitos em linguagem de maquina para aumentar a velocidade ou diminuir o espaco consumido. Em todo caso, a melhoria dos processadores dedicados tambem vem diminuindo essa pratica, sendo a C uma linguagem tipica para esse tipo de projeto. Essa pratica, porem, vem caindo em desuso, principalmente devido a grande complexidade dos processadores atuais, dos sistemas operacionais e dos problemas tratados. Muito raramente, realmente apenas em casos excepcionais, e utilizado o codigo de maquina, a representacao numerica utilizada diretamente pelo processador.[5]O Programa e inicialmente "carregado" na memoria principal.[6] Apos carregar o programa, o computador encontra o 'Entry Point' ou ponto inicial de entrada do programa