sexta-feira, 21 de janeiro de 2011

Curso de C



















C é uma linguagem de programação compilada de propósito geral, estruturada, imperativa, procedural, de alto nível, padronizada pela ISO, criada em 1972, por Dennis Ritchie, no AT&T Bell Labs, para desenvolver o sistema operacional Unix (que foi originalmente escrito em Assembly).[1]
C é uma das linguagens de programação mais populares[2][3] e existem poucas arquiteturas para as quais não existem compiladores para C. C tem influenciado muitas outras linguagens de programação,[4] mais notavelmente C++, que originalmente começou como uma extensão para C






História

O desenvolvimento inicial de C ocorreu no AT&T Bell Labs entre 1969 e 1973. Não se sabe se o nome "C" foi dado à linguagem porque muitas de suas características derivaram da linguagem B e C é a letra conseguinte no alfabeto, ou porque "C" é a segunda letra do nome da linguagem BCPL, da qual derivou-se a linguagem B.
C foi originalmente desenvolvido para a implementação do sistema Unix (originalmente escrito em PDP-7 Assembly, por Dennis Ritchie e Ken Thompson). Em 1973, com a adição do tipo struct, C tornou-se poderoso o bastante para a maioria das partes do núcleo do Unix, serem reescritas em C. Este foi um dos primeiros sistemas que foram implementados em uma linguagem que não o Assembly, sendo exemplos anteriores os sistemas: Multics (escrito em PL/I) e TRIPOS (escrito em BCPL). Segundo Ritchie, o período mais criativo ocorreu em 1972.
[editar]K&R C
Em 1978, Brian Kernighan e Dennis Ritchie publicaram a primeira edição do livro The C Programming Language. Esse livro, conhecido pelos programadores de C como "K&R", serviu durante muitos anos como uma especificação informal da linguagem. A versão da linguagem C que ele descreve é usualmente referida como "K&R C". A segunda edição do livro cobriu o padrão posterior, o ANSI C. K&R C introduziu as seguintes características na linguagem:
Biblioteca padrão de E/S
Tipos de dado struct
Tipos de dado long int
Tipos de dado unsigned int
O operador =+ foi alterado para +=, e =- para -= (o analisador léxico do compilador fazia confusão entre i =+ 10 e i = +10. O mesmo acontecia com =-)
K&R C é frequentemente considerado a parte mais básica da linguagem, cujo suporte deve ser assegurado por um compilador C. Durante muitos anos, mesmo após a introdução do padrão ANSI C, K&R C foi considerado o "menor denominador comum", em que programadores de C se apoiavam quando uma portabilidade máxima era desejada, já que nem todos os compiladores eram actualizados o bastante para suportar o padrão ANSI C.
Nos anos que se seguiram à publicação do K&R C, algumas características "não-oficiais" foram adicionadas à linguagem, suportadas por compiladores da AT&T e de outros vendedores. Estas incluíam:
Funções void e tipos de dados void *
Funções que retornam tipos struct ou union
Campos de nome struct num espaço de nome separado para cada tipo struct
Atribuição a tipos de dados struct
Qualificadores const para criar um objecto só de leitura
Biblioteca padrão, que incorpora grande parte da funcionalidade implementada por vários vendedores
Enumerações
Cálculos de ponto-flutuante em precisão simples (no K&R C, os cálculos intermediários eram feitos sempre em double, porque era mais eficiente na máquina onde a primeira implementação do C foi feita)
[editar]ANSI C e ISO C
Durante os finais da década de 1970, a linguagem C começou a substituir a linguagem BASIC como a linguagem de programação de microcomputadores mais usada. Durante a década de 1980, foi adaptada para uso no PC IBM, e a sua popularidade começou a aumentar significativamente. Ao mesmo tempo, Bjarne Stroustrup, juntamente com outros nos laboratórios Bell, começou a trabalhar num projecto onde se adicionavam construções de linguagens de programação orientada por objectos à linguagem C. A linguagem que eles produziram, chamada C++, é nos dias de hoje a linguagem de programação de aplicações mais comum no sistema operativo Windows da companhia Microsoft; C permanece mais popular no mundo Unix.
Em 1983, o instituto norte-americano de padrões (ANSI) formou um comité, X3J11, para estabelecer uma especificação do padrão da linguagem C. Após um processo longo e árduo, o padrão foi completo em 1989 e ratificado como ANSI X3.159-1989 "Programming Language C". Esta versão da linguagem é frequentemente referida como ANSI C. Em 1990, o padrão ANSI C, após sofrer umas modificações menores, foi adotado pela Organização Internacional para Padronização (ISO) como ISO/IEC 9899:1990, também conhecido como C89 ou C90. Um dos objetivos do processo de padronização ANSI C foi o de produzir um sobreconjunto do K&R C, incorporando muitas das características não-oficiais subsequentemente introduzidas. Entretanto, muitos programas tinham sido escritos e que não compilavam em certas plataformas, ou com um certo compilador, devido ao uso de bibliotecas de funções não-padrão e ao fato de alguns compiladores não aderirem ao ANSI C.
[editar]C99
Após o processo da padronização ANSI, as especificações da linguagem C permaneceram relativamente estáticas por algum tempo, enquanto que a linguagem C++ continuou a evoluir. (em 1995, a Normative Amendment 1 criou uma versão nova da linguagem C mas esta versão raramente é tida em conta.) Contudo, o padrão foi submetido a uma revisão nos finais da década de 1990, levando à publicação da norma ISO 9899:1999 em 1999. Este padrão é geralmente referido como "C99". O padrão foi adoptado como um padrão ANSI em Março de 2000. As novas características do C99 incluem:
Funções em linha
Remoção de restrições sobre a localização da declaração de variáveis (como em C++)
Adição de vários tipos de dados novos, incluindo o long long int (para minimizar problemas na transição de 32-bits para 64-bits), um tipo de dado boolean explicito (chamado _Bool) e um tipo complex que representa números complexos
Vetores de dados de comprimento variável (o vetor pode ter um tamanho diferente a cada execução de uma função, mas não cresce depois de criado)
Suporte oficial para comentários de uma linha iniciados por //, emprestados da linguagem C++
Várias funções de biblioteca novas, tais como snprintf()
Vários ficheiros-cabeçalho novos, tais como stdint.h
O interesse em suportar as características novas de C99 parece depender muito das entidades. Apesar do GCC e vários outros compiladores suportarem grande parte das novas características do C99, os compiladores mantidos pela Microsoft e pela Borland suportam pouquíssimos recursos do C99, e estas duas companhias não parecem estar muito interessadas em adicionar tais funcionalidades, ignorando por completo as normas internacionais. A Microsoft parece preferir dar mais ênfase ao C++.[5]
[editar]C1X
Em 2007, se iniciou o trabalho em antecipação de outra revisão do padrão de C, informalmente chamada "C1X". O comitê dos padrões de C adotou regras para limitar a inserção de novos recursos que não tenham ainda sido testados por implementações existentes.[6]



Aula 00 – Introdução teórica
Aula 01 – Conceitos básicos
Aula 02 – Variáveis I
Aula 03 – Variáveis II
Aula 04 – Estrutura de Condições I
Aula 05 – Estrutura de Condições II
Aula 06 – Estrutura de Condições III
Aula 07 – Estrutura de Repetições I
Aula 08 – Estrutura de Repetições II
Aula 09 – Funções
Aula 10 – Vetores I
Aula 11 – Vetores II
Aula 12 – Matrizes
Aula 13 – Strings
Aula 14 – Registros
Aula 15 – Ponteiros
Aproveite a oportunidade e comece agora mesmo a estudar!




Aula 00 - Introdução from Nícholas Oliveira on Vimeo.







Aula 01 - Conceitos Básicos from Nícholas Oliveira on Vimeo.






Aula 02 - Variáveis I from Nícholas Oliveira on Vimeo.






Aula 03 - Variáveis II from Nícholas Oliveira on Vimeo.






Aula 04 - Estruturas de Condições I from Nícholas Oliveira on Vimeo.







Aula 05 - Estruturas de Condições II from Nícholas Oliveira on Vimeo.







Aula 06 - Estruturas de Condições III from Nícholas Oliveira on Vimeo.








Aula 07 - Estruturas de Repetições I from Nícholas Oliveira on Vimeo.







Aula 08 - Estruturas de Repetições II from Nícholas Oliveira on Vimeo.







Aula 09 - Funções from Nícholas Oliveira on Vimeo.







Aula 10 - Vetores I from Nícholas Oliveira on Vimeo.








Aula 11 - Vetores II from Nícholas Oliveira on Vimeo.








Aula 12 - Matrizes from Nícholas Oliveira on Vimeo.








Aula 13 - Strings from Nícholas Oliveira on Vimeo.







Aula 14 - Registros(Structs) from Nícholas Oliveira on Vimeo.








Aula 15 - Ponteiros from Nícholas Oliveira on Vimeo.

Nenhum comentário:

Postar um comentário