From dfacc175dcdf6382354627e023b96d466305fca7 Mon Sep 17 00:00:00 2001 From: Blau Araujo Date: Mon, 10 Mar 2025 08:23:02 -0300 Subject: [PATCH] =?UTF-8?q?Conte=C3=BAdo=20da=20aula=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.org | 1 + aulas/01-historia/README.org | 106 +++++++++++++++++++++++++++++++++++ aulas/01-historia/salve.c | 8 +++ 3 files changed, 115 insertions(+) create mode 100644 aulas/01-historia/README.org create mode 100644 aulas/01-historia/salve.c diff --git a/README.org b/README.org index 8daeefc..79b56fa 100644 --- a/README.org +++ b/README.org @@ -18,4 +18,5 @@ qualquer distribuição. ** Anotações e vídeos - [[./aulas/00-intro/README.org][Aula 0: Sobre o curso]] ([[https://youtu.be/RZmfuuABTHY][vídeo]]) +- [[./aulas/01-historia/README.org][Aula 1: História]] ([[https://youtu.be/wqJQL5W9FIw][vídeo]]) diff --git a/aulas/01-historia/README.org b/aulas/01-historia/README.org new file mode 100644 index 0000000..8de806d --- /dev/null +++ b/aulas/01-historia/README.org @@ -0,0 +1,106 @@ +#+title: Curso Básico da Linguagem C +#+subtitle: Aula 1: História +#+author: Blau Araujo +#+startup: show2levels +#+options: toc:3 + +* Aula 1: História + +[[https://youtu.be/wqJQL5W9FIw][Vídeo desta aula]] + +** Principais momentos... + +- Ken Thompson cria a linguagem B (1969) para ter uma linguagem de alto nível + para reescrever o UNIX. + +- Dennis Ritchie continua aprimorando a linguagem B. + +- Em 1972, a linguagem B está tão diferente que recebe o nome de linguagem C. + +- Em 1978, Brian Kernighan e Dennis Ritchie lançam o livro: /The C Programming + Language/, que acaba se tornando a primeira especificação da linguagem. + +- Entre 1983 e 1989, são escritas as primeiras especificações ANSI (ISO/IEC) + para a linguagem. + +- Os racunhos de 1987 (C87) são utilizados para escrever a segunda edição do + livro, com o nome de /The ANSI C Programming Language/. + +** Características da linguagem C... + +- Linguagem compilada +- De alto nível +- De uso geral +- Imperativa +- Procedural +- Estruturada + +** Implementação GNU/Linux... + +*** Compilador: + +- /GNU Compiler Collection/ (=gcc=) + +*** Biblioteca C Padrão: + +- GNU Libc (=glibc=) + +** Compilação... + +Transformação do código-fonte em texto do programa para um código binário em +linguagem de máquina. + +*** Etapas: + +1 - Pré-processamento: + +#+begin_example +gcc -E arquivo.c → Saída padrão +#+end_example + +2 - Compilação: + +#+begin_example +gcc -S arquivo.c → arquivo.s (fonte em assembly) +#+end_example + +3 - Montagem: + +#+begin_example +gcc -c arquivo.c → arquivo.o (objeto binário) +#+end_example + +4 - Link-edição: + +#+begin_example +gcc arquivo.c → a.out (arquivo binário executável) +#+end_example + +** Exemplo de um programa em C... + +Programa =salve.c=: + +#+begin_src c +#include + +int main(void) { + + puts("Salve, simpatia!"); + + return 0; +} +#+end_src + +*** Compilação: + +#+begin_example +:~/git/cblc/aulas/01-historia$ gcc -o salve salve.c +#+end_example + +*** Execução: + +#+begin_example +:~/git/cblc/aulas/01-historia$ ./salve +Salve, simpatia! +#+end_example + diff --git a/aulas/01-historia/salve.c b/aulas/01-historia/salve.c new file mode 100644 index 0000000..d4f666e --- /dev/null +++ b/aulas/01-historia/salve.c @@ -0,0 +1,8 @@ +#include + +int main(void) { + + puts("Salve, simpatia!"); + + return 0; +}