segunda-feira, 4 de maio de 2009

Sobre o comando Debug do MS-DOS/Windows

Ao se começar a aprender uma linguagem de programação em assembly, é de suma importância aprender a usar um programa do tipo "debugger" (depurador, purificador, refinador ou debugador aportuguezado). Um debugger exibe o conteúdo da memória e permite a visualização dos registradores e variáveis enquanto eles são modificados. Você pode analisar um programa linha-a-linha (técnica chamada tracing) tornando mais fácil encontrar erros de lógica. Você pode usar o Debug.exe para testar instruções em assembler, tentar novas idéias de programação ou para cuidadosamente analisar seus programas. É requerida muita confiança para se escrever um programa em linguagem assembly e rodá-lo diretamente do DOS pela primeira vez! pois se você esquecer algum detalhe pode acabar com um programa se aventurando aondo não deveria, ou simplesmente travando, logo usar um programa como o Debug é fundamental para controlar, ou visualizar, o comportamento de seu programa assembly.

Funções do debugador(depurador):
* Montar programas curtos;
* ver o código-fonte de um programa junto com seu código de máquina;
* ver os registradores e "bandeiras" (flags) da CPU;
* rastrear ou executar um programa, observando as mudanças das variáveis;
* entrar com novos valores na memória;
* buscar por valores binários ou ASCII na memória;
* mover um bloco de memória de um logar para outro;
* preencher um bloco de memória;
* carregar e escrever arquivos de disco e setores.

Debug é o chamado depurador a nível de assembly porque ele só exibe mnemônicos em assembly e instruções de máquina. Mesmo se você usá-lo para depurar um programa em C++, por exemplo, você não verá o código-fonte do programa. Ao invés, verá uma desmontagem (disassembly) das instruções a nível de máquina do programa.

Para rastrear (analisar) ou executar um programa em linguagem de máquina com o Debug, digite o nome do programa como um parâmetro de linha de comando. Por exemplo, para depurar o programa chamado amostra.exe, digite o seguinte comando no prompt do DOS, sem as aspas: "debug amostra.exe". Se pudéssemos ver a memória no DOS após digitar tal comando, apareceria o DOS carregado na área mais baixa, seguido do Debug e o programa amostra.exe logo após o Debug.

Sumário dos comandos em Assembly:
Os comandos do Debug podem ser divididos em 4 categorias: criação/depuração de programas, manipulação de memória, miscelânea e entrada-saída:

1. Criação/depuração de programas

A - monta(assemble) em programa usando instruções mnemônicas;
G - executa o programa atualmente na memória;
R - exibe os conteúdos dos registradores e sinalizadores(flags);
P - continua após uma instrução, procedimento ou loop;
T - rastreia uma única instrução;
U - desmonta a memória em mnemônicos do montador;

2. Manipulação de memória

C - compara uma faixa de memória com uma outra;
D - despeja (mostra) os conteúdos da memória;
E - entra com bytes na memória;
F - preenche uma faixa de memória com um único valor;
M - move bytes de uma faixa de memória para outra;
S - busca por valor(es) específico(s) numa faixa de memória;

3. Miscelânea

H - desempenha adição e subtração em hexadecimal;
Q - sai do Debug e volta ao DOS;

4. Entrada-saída

I - entra com um byte de uma porta;
L - carrega dados do disco;
O - envia um byte a uma porta;
N - cria um nome de arquivo para uso com os comandos L e W;
W - escreve dados da memória para o disco.

Para maiores informações acesse:
http://kipirvine.com/asm/debug/Debug_Tutorial.pdf
http://mirror.href.com/thestarman/asm/debug/debug.htm/
http://www.krull.com.br/geo/prog/asm/tut01pt.htm

segunda-feira, 20 de abril de 2009

Conhecendo um pouco sobre os componentes de um PC.

Antes de irmos para a parte central do tema, convém definirmos alguns dos termos que aparecerção no decorrer do texto, além de elaborar uma breve introdução ao tema.

Sistemas Digitais usam somente duas voltagens, uma que é conhecida como baixa voltagem (normalmente entre 0 e 1 volt) e outra chamada alta voltagem (tipicamente entre 3 e 5 volts). Estas voltagens 'baixa' e 'alta' representam, respectivamente, os estados 'desligado' e 'ligado' e um sistema digital (um computador, por exemplo) interpretará tais estados como 0s e 1s. Em outras palavras, se a voltagem for 'baixa' então representará um 0 (estado desligado) e se for 'alta' então representará o 1 (estado ligado). Esses zeros e uns são os famosos bits do computador, donde bit é sigla de Binary Digit.

Diferença entre ALU e FPU:
ALU - Arithmetic Logic Unit <=> Unidade Lógica Aritmética - ULA
FPU - Floating-Point Unit <=> Unidade de Ponto Flutuante - UPF

Basicamente, a ALU lida com operações com inteiros somente, enquanto que as operações de ponto flutuante (onde o ponto decimal e as frações de inteiros são significativas) são geralmente desempenhadas somente pela FPU (apesar de existirem alguns truques para contornar isso).

Traduzido e adaptado dos originais:
* http://www.helpwithpcs.com/courses/processor-basics.htm
* http://wiki.answers.com/Q/What_is_the_difference_between_ALU_and_FPU

O Processador.
Também conhecido como CPU (ou UCP) é o equivalente computacional ao cérebro humano. Sua função principal é executar os os programas armazenados na memória principal. O processador procura cada instrução residente na memória, examina-a e executa uma após a outra.
O processador é composto por:
- Unidade de Controle (UC) - cuja função é acessar, decodificar e executar as instruções sucessivas de um programa armazenado na memória;
- Unidade Lógica e Aritmética (ULA);
- Unidade de ponto flutuante (FPU, em inglês);
- Registradores - para saber mais visite este. site

A Memória.
A memória de um computador se divide em principal (ROM e RAM), secundária (HDs, disquetes, etc) e cache.

O Barramento
Barramento, ou Bus em inglês (sim também significa Ônibus em português), é o elemento responsável pela interligação entre os dispositivos, ou componentes, de um computador, tanto entre si quanto com o processador, conduzindo de forma síncrona o fluxo de dados, endereços e sinais de controle de acordo com uma programação de atividades previamente definida pela UC (Unidade de Controle).

Há três tipos de barramento, quanto à sua funcionalidade:
- Barramento de dados;
- Barramento de endereços;
- Barramento de controle;
Os barramentos se classificam ainda quanto ao tipo de conexão com o processador:
- Barramento local - funciona na mesma frequência, ou clock, do processador, sendo o mais rápido existente na máquina;
- Barramento de sistema - adotado por alguns fabricantes, serve para interligar a memória cache á memória principal;
- Barramento de expansão - interliga os dispositivos de entrada e saída, ou E/S (ou I/O, em inglês). Ele se conecta ao barramento do sistema por interfaces de controle, também conhecidas como 'pontes' (ou bridges, em ingês) que servem para sincronizar as diferentes 'velocidades' dos barramentos

Para maior aprofundamento sugere-se acessar o material muito bem elaborado disponível aqui

Fonte: http://www2.zelir.com.br/uniban/org-arq-comp/Barramento.pdf
http://www.inf.lasalle.tche.br/disciplinas/fund_computacao/aulas/cpu.htm

Classificação dos itens do BIOS de um computador dentro das categorias supra mencionadas:
- Intel (R) Celeron (R) D CPU 2.8GHz: processador (CPU, UC, FPU, ALU) - localizado no menu Main.
- System Memory Total: 1024MB: memória principal do tipo RAM dinâmica - - localizado no menu Main.
- AMIBIOS: memória principal do tipo EEPROM (ROM programável e apagável eletricamente) - localizado no menu Main.
- Device Hard Disk: memória secundária, ou auxiliar - localizado no menu Main.
- Legacy Diskette A: dispositivo de E/S - localizado no menu Main.
- Primary IDE Master: tipo barramento;(qualquer n-ário IDE seja Master ou Slave) - localizado no menu Main.
- Onboard PCIEX 10/100Mb LAN: dispositivo de entrada e saída (E/S) - localizado no menu Advanced.
- Keyboard: dispositivo de entrada - localizado em APM Configuration.
- Mouse: dispositivo de entrada - localizado no menu Boot.

segunda-feira, 13 de abril de 2009

As graduações em computação estão preparadas para formar pessoas capazes de dar conta de tais desafios (os 5 da SBC)?

Acredita-se que nas melhores universidades voltadas para essa área, ou seja, aquelas com conceituação muito boa para cima, tanto pelos padrões da SBC quanto do governo federal, deve-se existir uma boa equipe de professores, além de uma grade curricular devidamente elaborada a fim de atender a esses desafios propostos pela entidade. A SBC serve inclusive como um norteador para a elaboração de cursos na área de T.I., visto que uma de suas metas é promover o desenvolvimento da área e a qualificação de profissionais aptos para tanto é imprescindível para isso. É claro que mesmo algumas universidades que não têm tantos recursos podem implementar com um bom grau de sucesso uma grade curricular adequada a atender tais exigências, bastando esforço e dedicação por parte de sua direção (chefia de departamento) em conjunto com uma reitoria que queira estimular esse desenvolvimento. Outro fator, que pesa bastante é o grau de comprometimento do corpo discente, visto que esses devem almejar uma graduação plena e rica em todas as áreas da T.I.

A que áreas do conhecimento humano diz respeito o desenvolvimento da área de Computação

Realmente, nos dias de hoje, quase toda área do conhecimento humano pode ser direta, ou indiretamente, vinculada (ou auxiliada) pela computação, tem-se até computadores "pintores" usando algoritmos especiais para tal fim. Entretanto nem toda área pode ser associada, ou se valer de alguma contribuição significativa, à informática. Como exemplo tem-se a psicanálise, que mais é uma arte do que propriamente ciência e em tal condição apresenta inúmeras falhas que nem mesmo os seres humanos podem contornar, quanto mais uma máquina; para tal área a informática seria usada somente ajudar a procurar padrões de comportamento em clientes consultados, agrupando-os por perfil sugerindo ao médico um padrão comum a ser explorado em tais clientes. Vê-se a presença da informática em quase tudo que há hoje em dia, em arquivologia, linguística, matemática, química, física, ciências sociais, medicina e por aí em diante.

quinta-feira, 2 de abril de 2009

Direto do site oficial da bioware, o trailer do próximo grande (fantástico diria eu) lançamento deles: Mass Effect 2.


segunda-feira, 30 de março de 2009

Grandes nomes da Lógica: Aristóteles, Boole e Frege.

INTRODUÇÃO:

A lógica, cuja etimologia remonta à Grécia antiga, oriunda das palavras λογική (logike) e λόγος (lógos) , que significa pensamento, idéia, razão, argumento, é uma ciência de caráter matemático tendo fortes laços com a filosofia. Ela, a lógica, estuda os princípios da demonstração válida e da inferência e é considerada como sendo um ramo da Filosofia bem como da Matemática. Visto que pensamento é considerado a manifestação do conhecimento e que este último busca a verdade, torna-se necessário estabelecer regras para que tal fim (a verdade) seja alcançado. Portanto, a lógica, enquanto ramo da Filosofia, trata das regras do pensar claramente, ou pensar corretamente, tornando-se um instrumento do pensar. A lógica então trata da argumentação, ou seja, das conclusões a que se pode chegar por meio da apresentação de evidências que as suportam. O maior expoente, bem como organizador, da chamada lógica clássica foi Aristóteles por meio da obra de sua autoria denominada Organon. Ele dividiu a lógica em duas categorias: Lógica formal (ou lógica menor) e lógica material (ou lógica maior).

Sistema lógico é o conjunto de axiomas e regras de inferência que objetivam representar de maneira formal, um raciocínio válido.

Por tradição, a lógica é também usada para designar o estudo de sistemas prescritivos de raciocínio que são sistemas definidores da maneira correta de se pensar, usando razão, dedução e indução de modo eficiente.

Enquanto ciência, a lógica define a estrutura de declaração e do argumento a fim de elaborar maneiras, ou fórmulas, com as quais esses poderão ser codificados.

A lógica em sua forma mais filosófica lida com descrições formais da linguagem natural e se acredita, por parte da maioria dos filósofos, que grande porção do raciocínio normal pode ser representada pela lógica, provido que se possa achar método adequado para fazer a tradução entre a linguagem atual e a lógica.

Chama-se de “Lógica Aristotélica” o sistema lógico desenvolvido por Aristóteles, a quem se deve o primeiro estudo formal do raciocínio. Três dos princípios centrais da lógica aristotélica são a “lei da não-contradição”, “lei da identidade” e a “lei do terceiro excluído”. A primeira diz que nenhuma afirmação pode ser verdadeira e falsa simultaneamente, a segunda afirma que todo objeto é idêntico a si mesmo, enquanto que a terceira diz que qualquer afirmação da forma P ou ~P(não-P) é verdadeira. Esse princípio deve ser cuidadosamente distingüido do chamado “princípio de bivalência”, segundo o qual para toda proposição p, ou ela ou a sua negação é verdadeira. A lógica aristótelica, em particular a teoria do silogismo, é apenas um fragmento da assim chamada lógica tradicional.

O estudo das condições em que se pode afirmar que um dado raciocínio está correto foi elaborado e desenvolvido por filósofos como Parmênides e Platão, mas foi Aristóteles que sistematizou e definiu a lógica como se conhece atualmente, tornando-a uma ciência autônoma. Durante séculos, lógica era sinônimo de lógica aristotélica e, embora tenha havido grandes avanços nesta área, principalmente durante o século XIX, o cerne da lógica aristotélica persiste até hoje.

A Natureza da Lógica

Primeiro alguns conceitos:

- Lógica informal: é aquela que estuda os argumentos da linguagem natural (do dia-a-dia). O estudo de falácias é um ramo de especial importância da lógica informal. Os chamados “diálogos de Platão” são um bom exemplo de lógica informal;

- Lógica formal: estuda as inferências com conteúdo puramente formal, onde tal conteúdo está explícito. (Uma inferência possui conteúdo puramente formal se ela puder ser expressa como uma aplicação particular de uma regra puramente abstrata, isto é, uma regra que não é sobre uma coisa particular qualquer ou propriedade. Os trabalhos de Aristóteles contêm os mais antigos estudos formais de lógica, os quais foram mais tarde (séc. XIX) incorporados na lógica formal moderna;

- Lógica simbólica: é a que estuda as abstrações simbólicas que capturam as características formais da inferência lógica. Lógica simbólica é frequentemente dividida em dois ramos: Lógica proposicional e lógica de predicados;

- Lógica Matemática: é uma extensão da lógica simbólica para outras áreas, em particular para o estudo da teoria dos modelos, teoria da prova, teoria dos conjuntos e teoria da recursão.

O conceito de forma lógica é vital na lógica. Está estabelecido que a validade de um argumento é determinada por sua forma lógica e não por seu conteúdo. A lógica silogística aristotélica tradicional e a lógica simbólica moderna são exemplos de lógicas formais.

Algumas propriedades importantes da lógica

Dentre as mais importantes propriedades que sistemas lógicos têm estão:

    • Consistência, significa que nenhum teorema do sistema contradiz um outro;

    • Validade, significa que as regras do sistema de prova nunca permitirão uma inferência falsa de uma premissa verdadeira. Se um sistema for válido e seus axiomas verdadeiros então seus teoremas estarão também garantidos como sendo verdadeiros;

    • Integridade (ou completeza), significa que não existem sentenças verdadeiras no sistema que não possam, pelo menos em princípio, ser provadas no mesmo.

Nem todos os sistemas lógicos possuem todas as três virtudes acima Um trabalho de Kurt Gödel mostrou, por exemplo, que nenhum sistema útil de aritmética pode ser ao mesmo tempo consistente e completo.

Conceitos rivais de lógica

A lógica surgiu de uma crescente preocupação com a exatidão da argumentação. Lógicos modernos normalmente desejam garantir que a lógica estude apenas aqueles argumentos que surgem de formas gerais apropriadas de inferência; assim por exemplo a Enciclopédia Stanford de Filosofia diz que a lógica “não cobre, entretanto, bom raciocínio como um todo. Essa é a área da teoria da racionalidade. Ao invés, ela (a lógica) lida com inferências cuja validade pode ser rastreada até as características formais das representações que estão envolvidas naquela inferência, sejam elas lingüísticas, mentais, ou quaisquer outras representações”. (Hofweber 2004)

Em contraste, Immanuel Kant arqumentou que a lógica deveria ser concebida como a ciência do julgamento, uma idéia adotada por Gottlob Frege (ver mais adiante) em seu trabalho lógico e filosófico, onde o pensamento (Gedanke, em alemão) é substituído por julgamento (Urteil, em alemão). Sobre esta concepção, as inferências válidas da lógica seguem das características estruturais de julgamentos ou pensamentos.

O nascimento da lógica matemática

Em meados do século XIX, ocorre na lógica uma verdadeira revolução. Diversos estudiosos da área da Matemática, conceberão, não só uma nova linguagem simbólica, como também uma maneira de tornar a lógica em uma espécie de álgebra. A lógica passou a ser vista como um cálculo, como a álgebra, visto que ambas se fundamentam nas leis do pensamento humano. Os enunciados seriam atemporais, à semelhança das proposições matemáticas.

Atribui-se a George Boole (1815-1864) a criação da lógica matemática. Na sua obra "Mathematical Analysis of Logic", publicada em 1847, a lógica foi pela primeira vez, de uma forma consistente, tratada como um cálculo de signos algébricos. Esta álgebra booleana será fundamental para o desenho dos circuitos nos computadores electrônicos modernos. É ainda a base da teoria dos conjuntos. Outras das suas contribuições decisivas foi ter acabado com as restrições impostas à lógica desde Aristóteles, afirmando que existia uma infinidade de raciocínios válidos e uma infinidade de raciocínios não válidos. Ernest Schroder (1890-1895), nas suas "Lições sobre a algebra lógica" deu a forma acabada à logica de Boole.

O alemão Friedrich Ludwig Gottlob Frege, nascido em 8 de novembro de 1848, em Wismar foi um matemático que se tornou um lógico e filósofo. Ele ajudou a criar tanto a lógica matemática moderna quanto a filosofia analítica. Seu trabalho teve grande alcance e influenciou a filosofia e semântica da lingüística do século XX. Ele foi o primeiro a introduzir o cálculo proposicional em sua forma moderna. Apresentou a função proposicional, a formação de regras de inferência primitivas e o uso de quantificadores, além de resolver o problema da generalidade múltipla.

É facilmente notado que a lógica de Aristóteles é incapaz de representar mesmo as mais elementares inferências da geometria euclidiana, mas a “notação conceitual” de Frege pode representar inferências envolvendo declarações matemáticas complexas indefinidamente. Em síntese, ele criou todo um sistema capaz de transformar em raciocínios dedutivos todas as demonstrações matemáticas. Para tanto todas as demonstrações foram traduzidas num vocabulário fixo, um certo conjunto de modos de tradução. Nesta notação, a construção de cada frase, o seu significado e o modo como se dá o raciocínio se deduziam os novos passos a partir dos anteriores, tudo deveria ser devidamente explicitado. Com Frege passa-se da algebra da lógica (matematização do pensamento) à logística (logicização das matemáticas) e mesmo ao logicismo (redução das matemáticas à lógica).

A lógica matemática se caracteriza por ter construído uma linguagem artificial, simbólica, para representar o pensamento de uma forma unívoca. Cada signo possui apenas com um único significado.

Tal linguagem possui as seguintes propriedades:
- Não exige qualquer tradução numa linguagem natural
- A escrita é ideográfica (não-fonética). As idéias são representadas por símbolos
- A forma gramatical é substituída pela forma lógica.


Nota: este material foi extraído de diversas fontes, sobretudo:

http://pt.wikipedia.org
http://afilosofia.no.sapo.pt/Hist.htm
http://wapedia.mobi/pt/Lógica?t=5.

segunda-feira, 23 de março de 2009

Sobre a estrutura administrativa da UFS.

A seguir se encontra um "organograma" da Estrutura administrativa da Universidade:

Conselhos

* Conselho Universitário - CONSU;
* Conselho do Ensino e da Pesquisa - CONEP;

Reitoria

* Gabinetes do Reitor - GR;
* Assessoria Jurídica - AJUR;
* Assessoria de Comunicação - ASCOM;
* Gabinete do Vice-Reitor - GVR;
* Coordenação de Controle Interno - CCI;

Pró-Reitoria de Graduação – PROGRAD

* Coordenação de Concurso Vestibular - CCV;
* Departamento de Apoio Didático-Pedagógico - DEAPE;
* Departamento de Administração Acadêmica - DAA;

Pró-Reitoria de Pós-Graduação e Pesquisa - POSGRAP

* Coordenação de Pesquisa - COPGD;
* Coordenação de Pesquisa - COPES;
* Coordenação de Assuntos Internacionais e Capacitação Docente e Técnica - CICAT;

Pró-Reitoria de Extensão e Assuntos Comunitários - PROEX

* Centro de Atividades de Extensão - CECAC;
* Centro de Cultura e Arte - CULTART;
* Museu do Homem Sergipano - MHS;
* NÚCLEOS vinculados a PROEX;
* Rede de Educação Ambiental do Estado de Sergipe - REASE;

Pró-Reitoria de Assuntos Estudantis - PROEST

* Coordenação de Promoção Cultural e Recreativas - COPRE;
* Coordenação de Assistência ao Estudante - CODAE;
* Divisão de Assistência ao Servidor e ao Estudante - DIASE;
* Restaurante Universitário - RESUN;
* Núcleo de Orientação e Assistência Psico-social - NOAPS;

Pró-Reitoria de Administração - PROAD

* Departamento Financeiro - DEFIN;
* Departamento de Recursos Materiais - DRM;
* Arquivo Geral - ARQUIVO;
* Serviço Geral de Comunicação e Arquivo - SECOM;
* Centro de Impressão Eletrônica - CIMPE;
* Procedimento Padrão para Solicitação de Passagens e Diárias;
* Formulário de Solicitação de Passagens;
* Formulário de Movimentação de Bens Móveis;
* Manual de Administração Patrimonial;

Coordenação Geral de Planejamento - COGEPLAN

* Coordenação de Avaliação Institucional - COAVI;
* Coordenação de Planejamento Acadêmico - COPAC;
* Coordenação de Programação Orçamentária - COPRO;
* Coordenação de Programas, Projetos e Convênios - COPEC;
* Coordenação de Contrrole de Custos - COC;

Gerência de Recursos Humanos – GRH

* Departamento de Pessoal - DP;
* Divisão de Movimentação e Registro - DIMOR;
* Divisão de Despesas de Pessoal - DIPES;
* Divisão de Assistência ao Servidor - DIASE;
* Depart. de Desenvolvimento de Recursos Humandos - DDRH;
* Divisão de Desenvolvimento de Pessoal - DIDEP;
* Divisão de Recrutamento e Seleção de Pessoal - DIRESP;
* Divisão de Administração de Cargos e Remuneração - DIACRE;

Prefeitura do Campus - PREFCAMP

* Departamento de Obras e Fiscalização - DOFIS;
* Departamento de Serviços Gerais - DSG;
* Formulário de Fornecimento de Material de Limpeza - Mensal;
- Formulário de Fornecimento de Material de Limpeza - Trimestral;
* Departamento de Manutenção - DEMAN;

Orgãos Suplementares

* Biblioteca Central - BICEN;
* Biotério Central;
* Centro Editorial e Audiovisual - CEAV;
* Centro de Processamento de Dados - CPD;
* Colégio de Aplicação - CODAP;
* Editora da UFS;
* Hospital Universitário - H.U.

Centro de Ciências Exatas e Tecnologia - CCET

* Departamento de Computação - DOMP;