Baixe o app para aproveitar ainda mais
Prévia do material em texto
REPÚBLICA DE ANGOLA UNIVERSIDADE ÓSCAR RIBAS CURSO DE INFORMÁTICA E TELECOMUNICAÇÕES Impor tância das linguagens de programação C# e C++. Docente ________________________ REPÚBLICA DE ANGOLA UNIVERSIDADE ÓSCAR RIBAS CURSO DE INFORMÁTICA E TELECOMUNICAÇÕES Impor tância das linguagens de programação C# e C++. Nome: Edilson FerreiraAbano Nº de estudante: 20190016 Turma: A Sala: A Curso: Engenharia Informática eComunicação Turno: Manhã Índice 1. Objectivos …………..……………………………………………… 1 2. Justificação ………………………………………………………… 2 3. Introdução ………………………………………….……….……… 3 4. História …………………….……………………….……………… 4 4.1 Linguagem c++…………………………………………………… 4 4.1.1 Características ……………….………………………………….. 5 4.1.2 Críticas da linguagem c++ …..………………………………….. 6 4.1.3 Ambiente da linguagem ………………..……………………….. 6 4.1.4 Apresentação da linguagem c++ …..…………..…………….….. 7 4.2 Linguagem c#……………………………..……………………….. 8 4.2.1 Características da linguagem c# ….………………….………….. 9 4.1.2 Apresentação da linguagem c# ….….…..……………………….. 9 5. Áreas de aplicação …………………………………………………. 10 6. Importância ………………………………………………………… 11 7. Vantagens e Desvantagens …………………………………………. 12-13 8. Diferenças e Semelhanças …………………………………………. 14-15 9. Conclusão ………………………………………………………….. 16 10. Sugestões ……………………………….………………………….. 17 11. Anexos ..…………………………………………………………… 18 12. Referências Bibliográficas ..……………………………………….. 19 1 Objectivo Este trabalho tem como objectivo ajudar o leitor a conhecer a Impor tância das linguagens de programação c# e c++. Saber sobre a história das mesmas, seus fundadores e criadores. 2 Justificação Espero que após a leitura deste trabalho o leitor possa escolher uma das linguagens de programação e passe a saber mais sobre as mesmas. 3 Introdução C++ (em português: lê-se "cê mais mais", em inglês lê-se see plus plus) é uma linguagem de programação compilada multi-paradigma (seu suporte inclui linguagem imperativa, orientada a objetos e genérica) e de uso geral. Desde os anos 1990 é uma das linguagens comerciais mais populares, sendo bastante usada também na academia por seu grande desempenho e base de utilizadores. Bjarne Stroustrup desenvolveu o C++ (originalmente com o nome C with Classes, que significa C com classes em português) em 1983 no Bell Labs como um adicional à linguagem C. Novas características foram adicionadas com o tempo, como funções virtuais, sobrecarga de operadores, herança múltipla, gabaritos e tratamento de exceções. Após a padronização ISO realizada em 1998 e a posterior revisão realizada em 2003, uma nova versão da especificação da linguagem foi lançada em dezembro de 2014, conhecida informalmente como C++17. C# é uma linguagem de programação, multiparadigma, de tipagem forte, desenvolvida pela Microsoft como parte da plataforma .NET. A sua sintaxe orientada a objetos foi baseada no C++ mas inclui muitas influências de outras linguagens de programação, como Object Pascal e, principalmente, Java. O código fonte é compilado para Common Intermediate Language (CIL) que é interpretado pela máquina virtual Common Language Runtime (CLR). C# é uma das linguagens projetadas para funcionar na Common Language Infrastructure da plataforma .NET Framework. Pensava-se que o nome "C#" viria duma sobreposição de quatro símbolos +, dando a impressão de ++++, uma alusão à continuação do C++. Entretanto, a cerquilha de "C#" se refere ao sinal musical sustenido (♯, em inglês: sharp), que aumenta em meio tom uma nota musical. Porém, devido a limitações técnicas (fontes padrões, navegadores, etc) e o fato do símbolo não estar presente nos teclados, o cardinal (#) foi escolhido para ser usado no nome escrito. Essa convenção é refletida no ECMA-334 C# Language Specification, a especificação técnica da linguagem. Entretanto, em determinados lugares, como em propagandas e capas de livros, é usado o símbolo de sustenido. https://pt.wikipedia.org/wiki/L%C3%ADngua_portuguesa https://pt.wikipedia.org/wiki/L%C3%ADngua_inglesa https://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o_compilada https://pt.wikipedia.org/wiki/Paradigma_de_programa%C3%A7%C3%A3o https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_imperativa https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_orientada_a_objetos https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_gen%C3%A9rica https://pt.wikipedia.org/wiki/Anos_1990%22%20%5Co%20%22Anos%201990 https://pt.wikipedia.org/wiki/Academia%22%20%5Co%20%22Academia https://pt.wikipedia.org/wiki/Bjarne_Stroustrup%22%20%5Co%20%22Bjarne%20Stroustrup https://pt.wikipedia.org/wiki/Classe_(programa%C3%A7%C3%A3o) https://pt.wikipedia.org/wiki/Classe_(programa%C3%A7%C3%A3o) https://pt.wikipedia.org/wiki/1983%22%20%5Co%20%221983 https://pt.wikipedia.org/wiki/Bell_Labs%22%20%5Co%20%22Bell%20Labs https://pt.wikipedia.org/wiki/C_(linguagem_de_programa%C3%A7%C3%A3o) https://pt.wikipedia.org/wiki/Operadores_em_C_e_C++%22%20%5Co%20%22Operadores%20em%20C%20e%20C++ https://pt.wikipedia.org/wiki/Heran%C3%A7a_m%C3%BAltipla https://pt.wikipedia.org/wiki/Tratamento_de_exce%C3%A7%C3%B5es https://pt.wikipedia.org/wiki/Organiza%C3%A7%C3%A3o_Internacional_para_Padroniza%C3%A7%C3%A3o https://pt.wikipedia.org/wiki/1998%22%20%5Co%20%221998 https://pt.wikipedia.org/wiki/2003%22%20%5Co%20%222003 https://pt.wikipedia.org/wiki/2014%22%20%5Co%20%222014 https://pt.wikipedia.org/wiki/C++17%22%20%5Co%20%22C++17 https://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o https://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o_multiparadigma https://pt.wikipedia.org/wiki/Tipo_de_dado%22%20%5Co%20%22Tipo%20de%20dado https://pt.wikipedia.org/wiki/Microsoft%22%20%5Co%20%22Microsoft https://pt.wikipedia.org/wiki/Microsoft_.NET%22%20%5Co%20%22Microsoft%20.NET https://pt.wikipedia.org/wiki/C++%22%20%5Co%20%22C++ https://pt.wikipedia.org/wiki/Object_Pascal%22%20%5Co%20%22Object%20Pascal https://pt.wikipedia.org/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o) https://pt.wikipedia.org/wiki/Common_Intermediate_Language%22%20%5Co%20%22Common%20Intermediate%20Language https://pt.wikipedia.org/wiki/Common_Intermediate_Language%22%20%5Co%20%22Common%20Intermediate%20Language https://pt.wikipedia.org/wiki/Common_Language_Runtime%22%20%5Co%20%22Common%20Language%20Runtime https://pt.wikipedia.org/wiki/Common_Language_Runtime%22%20%5Co%20%22Common%20Language%20Runtime https://pt.wikipedia.org/wiki/Infraestrutura_de_linguagem_comum%22%20%5Co%20%22 https://pt.wikipedia.org/wiki/Infraestrutura_de_linguagem_comum%22%20%5Co%20%22 https://pt.wikipedia.org/wiki/Microsoft_.NET%22%20%5Co%20%22Microsoft%20.NET https://pt.wikipedia.org/wiki/+%22%20%5Co%20%22+ https://pt.wikipedia.org/wiki/C++%22%20%5Co%20%22C++ https://pt.wikipedia.org/wiki/Cerquilha%22%20%5Co%20%22Cerquilha https://pt.wikipedia.org/wiki/Sustenido%22%20%5Co%20%22Sustenido https://pt.wikipedia.org/wiki/L%C3%ADngua_inglesa https://pt.wikipedia.org/wiki/Nota_musical%22%20%5Co%20%22Nota%20musical https://pt.wikipedia.org/wiki/Nota_musical%22%20%5Co%20%22Nota%20musical https://pt.wikipedia.org/wiki/Navegador_(inform%C3%A1tica) 4 A linguagem C++, foi inicialmente desenvolvido por Bjarne Stroustrup dos Bell Labs, durante a década de 1980 com o objetivo implementar uma versão distribuída do núcleo Unix. Como o Unix era escrito em C, deveria-se manter a compatibilidade, ainda que adicionando novos recursos. Alguns dos desafios incluíam simular a infraestrutura da comunicação entre processos num sistema distribuído ou de memória compartilhada e escrever drivers para tal sistema. Stroustrup percebeu que a linguagem Simula 67 possuía características bastante úteis para o desenvolvimento de software, mas que era muito lenta para uso prático. Por outro lado, a linguagem BCPL era rápida, mas possuía demasiado baixo nível, dificultando sua utilização no desenvolvimento de aplicações. A partir de sua experiência de doutorado, começou a acrescentar elementos do Simula 67 no C, especialmente os recursos de criação e manipulação de objetos. O C foi escolhido como base de desenvolvimento danova linguagem pois possuía uma proposta de uso genérico, era rápido e também portável para diversas plataformas. Algumas outras linguagens que também serviram de inspiração para o cientista da computação foram ALGOL 68, Ada, CLU e ML. Ainda em 1983 o nome da linguagem foi alterado de C with Classes para C++. Antes implementada usando um pré-processador, a linguagem passou a exigir um compilador próprio, escrito pelo próprio Stroustrup. Novas características foram adicionadas, como funções virtuais, sobrecarga de operadores e funções, referências, constantes, gerenciamento manual de memória, melhorias na verificação de tipo de dado e estilo de comentário de código de uma linha (//). Em 1985 foi lançada a primeira edição do livro The C++ Programming Language, contendo referências para a utilização da linguagem, já que ainda não era uma norma oficial. A primeira versão comercial foi lançada em outubro do mesmo ano. Em 1989 a segunda versão foi lançada, contendo novas características como herança múltipla, classes abstratas, métodos estáticos, métodos constantes e membros protegidos, incrementando o suporte a orientação a objeto. Em 1990 foi lançado o livro The Annotated C++ Reference Manual, que tornou-se base para o futuro padrão. Outras adições na linguagem incluem gabaritos, tratamento de exceções, espaço de nomes, conversão segura de tipo de dado e o tipo booleano. Assim como a linguagem, sua biblioteca padrão também sofreu melhorias ao longo do tempo. Sua primeira adição foi a biblioteca de E/S, e posteriormente a Standard Template Library (STL); ambas tornaram-se algumas das principais funcionalidades que distanciaram a linguagem em relação a C. Criada primordialmente na HP por Alexander Stepanov no início da década de 1990 para explorar os potenciais da programação genérica, a STL foi apresentada a um comitê unificado ANSI e ISO em 1993 à convite de Andrew Koenig. Após uma proposta formal na reunião do ano seguinte, a biblioteca recebe o aval do comitê. Depois de anos de trabalho, o mesmo comitê ANSI/ISO padronizou o C++ em 1998 (ISO/IEC 14882:1998). Após alguns anos foram reportados defeitos e imprecisões no documento, e uma correção foi lançada em 2003. Por muito tempo, o C++ foi encarado como um superconjunto do C. Entretanto, em 1999 o novo padrão ISO para a linguagem C tornou as duas linguagens ainda mais diferentes entre si. Devido a essas incompatibilidades, muitas empresas que desenvolvem compiladores não oferecem suporte à versão mais recente da linguagem C. Pode-se dizer que C++ foi a única linguagem entre tantas outras que obteve sucesso como uma sucessora à linguagem C, inclusive servindo de inspiração para outras linguagens como Java, a IDL de CORBA e C#. https://pt.wikipedia.org/wiki/D%C3%A9cada_de_1980 https://pt.wikipedia.org/wiki/N%C3%BAcleo_(inform%C3%A1tica) https://pt.wikipedia.org/wiki/Unix%22%20%5Co%20%22Unix https://pt.wikipedia.org/wiki/C_(linguagem_de_programa%C3%A7%C3%A3o) https://pt.wikipedia.org/wiki/Comunica%C3%A7%C3%A3o_entre_processos https://pt.wikipedia.org/wiki/Sistema_distribu%C3%ADdo https://pt.wikipedia.org/wiki/Mem%C3%B3ria_compartilhada https://pt.wikipedia.org/wiki/Driver_de_dispositivo%22%20%5Co%20%22Driver%20de%20dispositivo https://pt.wikipedia.org/wiki/Simula_67%22%20%5Co%20%22Simula%2067 https://pt.wikipedia.org/wiki/Desenvolvimento_de_software%22%20%5Co%20%22Desenvolvimento%20de%20software https://pt.wikipedia.org/wiki/BCPL%22%20%5Co%20%22BCPL https://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o_de_baixo_n%C3%ADvel https://pt.wikipedia.org/wiki/Software_aplicativo%22%20%5Co%20%22Software%20aplicativo https://pt.wikipedia.org/wiki/Doutoramento%22%20%5Co%20%22Doutoramento https://pt.wikipedia.org/wiki/Objeto_(inform%C3%A1tica) https://pt.wikipedia.org/wiki/Plataforma_(inform%C3%A1tica) https://pt.wikipedia.org/wiki/Cientista_da_computa%C3%A7%C3%A3o https://pt.wikipedia.org/wiki/ALGOL_68%22%20%5Co%20%22ALGOL%2068 https://pt.wikipedia.org/wiki/Ada_(linguagem_de_programa%C3%A7%C3%A3o) https://pt.wikipedia.org/wiki/CLU_(linguagem_de_programa%C3%A7%C3%A3o) https://pt.wikipedia.org/wiki/ML_(linguagem_de_programa%C3%A7%C3%A3o) https://pt.wikipedia.org/wiki/1983%22%20%5Co%20%221983 https://pt.wikipedia.org/wiki/Pr%C3%A9-processador https://pt.wikipedia.org/wiki/Operador%22%20%5Co%20%22Operador https://pt.wikipedia.org/wiki/Refer%C3%AAncia_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o) https://pt.wikipedia.org/wiki/Constante_(programa%C3%A7%C3%A3o) https://pt.wikipedia.org/wiki/Gerenciamento_de_mem%C3%B3ria https://pt.wikipedia.org/wiki/Tipo_de_dado%22%20%5Co%20%22Tipo%20de%20dado https://pt.wikipedia.org/wiki/1985%22%20%5Co%20%221985 https://pt.wikipedia.org/wiki/1989%22%20%5Co%20%221989 https://pt.wikipedia.org/wiki/Heran%C3%A7a_m%C3%BAltipla https://pt.wikipedia.org/wiki/1990%22%20%5Co%20%221990 https://pt.wikipedia.org/wiki/Espa%C3%A7o_de_nomes https://pt.wikipedia.org/wiki/Booleano%22%20%5Co%20%22Booleano https://pt.wikipedia.org/wiki/Biblioteca_padr%C3%A3o_do_C++ https://pt.wikipedia.org/wiki/E/S%22%20%5Co%20%22E/S https://pt.wikipedia.org/wiki/Standard_Template_Library%22%20%5Co%20%22Standard%20Template%20Library https://pt.wikipedia.org/wiki/Standard_Template_Library%22%20%5Co%20%22Standard%20Template%20Library https://pt.wikipedia.org/wiki/Hewlett-Packard%22%20%5Co%20%22Hewlett-Packard https://pt.wikipedia.org/wiki/Alexander_Stepanov%22%20%5Co%20%22Alexander%20Stepanov https://pt.wikipedia.org/wiki/Alexander_Stepanov%22%20%5Co%20%22Alexander%20Stepanov https://pt.wikipedia.org/wiki/D%C3%A9cada_de_1990 https://pt.wikipedia.org/wiki/ANSI%22%20%5Co%20%22ANSI https://pt.wikipedia.org/wiki/ISO%22%20%5Co%20%22ISO https://pt.wikipedia.org/wiki/1993%22%20%5Co%20%221993 https://en.wikipedia.org/wiki/Andrew_Koenig_(programmer)%22%20%5Co%20%22en:Andrew%20Koenig%20(programmer) https://en.wikipedia.org/wiki/Andrew_Koenig_(programmer)%22%20%5Co%20%22en:Andrew%20Koenig%20(programmer) https://pt.wikipedia.org/wiki/1998%22%20%5Co%20%221998 https://pt.wikipedia.org/wiki/ISO/IEC_14882%22%20%5Co%20%22ISO/IEC%2014882 https://pt.wikipedia.org/wiki/2003%22%20%5Co%20%222003 https://pt.wikipedia.org/wiki/1999%22%20%5Co%20%221999 https://pt.wikipedia.org/wiki/Compilador%22%20%5Co%20%22Compilador https://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o_Java https://pt.wikipedia.org/wiki/Linguagem_de_descri%C3%A7%C3%A3o_de_interface https://pt.wikipedia.org/wiki/CORBA%22%20%5Co%20%22CORBA https://pt.wikipedia.org/wiki/C_Sharp%22%20%5Co%20%22C%20Sharp 5 Caracter ísticas do C++. C++ pode ser visto como uma linguagem procedimental tradicional com alguns construtores adicionais. Começando pelo C, alguns construtores para programação orientada a objetos e para melhorar a sintaxe procedimental foram acrescentados. Um programa bem escrito em C++ irá refletir elementos tanto do estilo de programação orientada a objetos como programação procedimental clássica. Isto porque o C++ é na verdade uma linguagem extensível já que podemos definir novos tipos de tal maneira que eles agem de mesmo modo que os tipos pré-definidos que fazem parte da linguagem padrão. Abaixo estão listados itens que caracterizam a linguagem C++: • Programação Orientada à Objetos: A possibilidade de utilizar programação orientada a objetos permite ao programador projetar aplicações de um ponto de vista mais parecido com comunicação entre objetos que de uma seqüência estruturada de código. Alem disso, permite a reusabilidade de código de uma forma mais lógica e produtiva. A linguagem foi desenvolvida com o cuidado de prover atributos Orientados à Objeto para a linguagem C sem comprometer a eficiência; • Portabilidade: Pode-se praticamente compilar o mesmo código C++ em qualquer tipo de computador e sistema operacional sem fazer grandes mudanças. C++ é uma das mais usadas e portadas linguagens de programação; • Brevidade: Código escrito em C++ é muito menor em comparação com outras linguagens, desde o uso de caracteres especiais e preferidos antes de palavras chave, evitando esforço; • ProgramaçãoModular: Um corpo de aplicação em C++ pode ser feita de vários arquivos de código que serão compilados separadamente e “linkados” juntos. Economizando tempo, pois não é necessário recompilar toda a aplicação quando se faz uma mudança simples, mas apenas aquele arquivo que a contem. Alem do mais, esta característica permite C++ ligar com código produzido em outras linguagens como o Assembler ou C; • Compatibilidade com C: Qualquer código escrito em C pode ser facilmente incluído em um programa C++ sem fazer grandes mudanças; • Velocidade: O código resultante de uma compilação C++ é muito eficiente, devido a sua dualidade de linguagem de Alto e Baixo nível e do tamanho reduzido da linguagem em si; • Não há um "dono" da linguagem. Há vários compiladores e sistemas operacionais que utilizam o padrão C/C++ ANSI. Isto significa na prática que esta linguagem tem inúmeros patrocinadores, famosos e anônimos. Isto mantém o suporte sempre muito atualizado e disponível pela internet. • C++ é desenvolvido para fornecer ao programador múltiplas escolhas, mesmo que seja possível ao programador escolher a opção errada. 6 Criticas " C faz com que dar um tiro no pé seja fácil; C++ torna isso mais difícil, mas quando nós o fazemos arrebentamos com a perna toda. " - Bjarne Stroustrup A linguagem é por vezes criticada como sendo muito complicada e, portanto, difícil de dominar completamente, porque ele inclui a maior parte da linguagem de programação C como um subconjunto. C++ também herda muitas das críticas feitas ao C. Outras críticas relacionam-se à ausência de funcionalidades, como a falta de facilidades multithreading "nativas" -- recurso presente em alguns outros idiomas como, por exemplo, Ada, C# e Java. O atual padrão C++11 resolve este problema, adicionando suporte para concorrência direta com a linguagem, mas no momento isto só é possível usando chamadas do sistema operacional ou bibliotecas de terceiros. C++ também é por vezes comparada desfavoravelmente com linguagens como Eiffel, Java ou Smalltalk por permitir aos programadores "misturar e combinar" estilos de programação declarativa, funcional, genérico, modular, e processuais com programação orientada a objetos, ao invés de estritamente impor um estilo único, embora C++ seja intencionalmente uma linguagem multi- paradigma. Um artigo satírico amplamente distribuído apresenta uma suposta entrevista com Bjarne Stroustrup em 1998 que seria publicada na revista Computer, editada pela IEEE Computer Society. Nela haveria a confissão de que C++ foi deliberadamente concebida para ser complexa e difícil, com o intuito de eliminar programadores amadores e elevar os salários dos poucos programadores capazes de dominar a linguagem. A seção FAQ do site pessoal Stroustrup contém uma negação e um link para a entrevista real. Outro ponto de crítica é a característica de herança múltipla, cujo uso descuidado produz uma codificação confusa e de manutenção difícil. Um exemplo é o problema conhecido como Diamond problem. Ambiente da Linguagem O C++ pode ser chamado de linguagem compilada, ou seja, além de escrever o código, é necessário um outro software que possa entender esse código e traduzí-lo para uma sintaxe que o computador possa interpretar denominado Código de Máquina. É necessário um editor de texto puro (como o Bloco de Notas) e um compilador para o desenvolvimento de aplicativos na linguagem C++, nesse caso quando o programador digitar o código-fonte o mesmo deve ser salvo com a extensão .CPP ao invés de .TXT, em seguida o índividuo deve abrir o prompt digitar o comando de compilação do compilador instalado (por exemplo no compilador Borland C++Builder 3.0 o respectivo comando de compilação é bcc32) seguido pelo nome do arquivo salvo.CPP, ou então o programador pode optar por utilizar um Ambiente de Desenvolvimento Integrado (IDE - Integrated Development Environment) para otimizar o desenvolvimento de suas aplicações. https://en.wikipedia.org/wiki/IEEE_Computer https://en.wikipedia.org/wiki/Diamond_problem https://en.wikipedia.org/wiki/Diamond_problem 7 Apresentação da linguagem c++ Sintaxe da linguagem c++: #include <iostream> #include <string> using namespace std; int main () { cout<<“Olá Mundo”<<endl; return 0; } Os comandos de entrada e saída em C++ são: Cout e cin. 8 A linguagem C#, faz parte do conjunto de ferramentas oferecidas na plataforma .NET e surge como uma linguagem simples, robusta, orientada a objetos, fortemente tipada e altamente escalável a fim de permitir que uma mesma aplicação possa ser executada em diversos dispositivos de hardware, independentemente destes serem PCs, handhelds ou qualquer outro dispositivo móvel. O avanço das ferramentas de programação e dos dispositivos eletrônicos inteligentes, criou problemas e novas exigências. As novas versões de componentes compartilhados eram incompatíveis com o software antigo. Os desenvolvedores reconheceram a necessidade de software que fosse acessível para qualquer um e disponível por meio de praticamente qualquer tipo de dispositivo. Para tratar dessas necessidades, a Microsoft anunciou sua iniciativa .NET e a linguagem de programação C#. Durante o desenvolvimento da plataforma .NET, as bibliotecas foram escritas originalmente numa linguagem chamada Simple Managed C (SMC), que tinha um compilador próprio. Mas, em Janeiro de 1999, uma equipe de desenvolvimento foi formada por Anders Hejlsberg, que fora escolhido pela Microsoft para desenvolver a linguagem. Dá- se início à criação da linguagem chamada Cool. Um pouco mais tarde, em 2000, o projeto .NET era apresentado ao público na Professional Developers Conference (PDC), e a linguagem Cool fora renomeada e apresentada como C#. A criação da linguagem, embora tenha sido feita por vários programadores, é atribuída principalmente a Anders, hoje um Distinguished Engineer na Microsoft. Ele fora o arquiteto de alguns compiladores da Borland, e entre suas criações mais conhecidas estão o Turbo Pascal e o Delphi. A Microsoft submeteu o C# à ECMA para uma padronização formal. Em Dezembro de 2001 a associação liberou a especificação ECMA-334 Especificação da Linguagem C#. Em 2003 tornou-se um padrão ISO (ISO/IEC 23270). Há algumas implementações em desenvolvimento, destacando-se a Mono, implementação open source da Novell, o dotGNU e o Portable.NET, implementações da Free Software Foundation, e o BDS 2008, implementação da CodeGear. Caracter ísticas do C# • Orientada a Objetos • Não há variáveis ou funções globais. Todos os métodos e atributos devem ser declarados dentro de classes. Atributos e métodos estáticos de classes públicas podem servir como substitutos para variáveis e métodos globais. • Apontadores • Em C#, apontadores só podem ser usados dentro de blocos especificamente marcados como inseguros. Programas com código inseguro precisam das permissões apropriadas para serem executados. • Memória Gerenciada • Em C# a memória não precisa ser explicitamente liberada. Ao invés disso ela é automaticamente gerenciada por meio do Garbage Collector (coletor de lixo), que constantemente percore a memória alocada para verificar se ela ainda é necessária, eliminando assim o risco de vazamentos de memória. • Tipagem Forte https://pt.wikipedia.org/wiki/Biblioteca_(computa%C3%A7%C3%A3o) https://pt.wikipedia.org/wiki/Anders_Hejlsberg%22%20%5Co%20%22Anders%20Hejlsberg https://pt.wikipedia.org/wiki/Microsoft%22%20%5Co%20%22Microsoft https://pt.wikipedia.org/wiki/Borland%22%20%5Co%20%22Borland https://pt.wikipedia.org/wiki/Turbo_Pascal%22%20%5Co%20%22Turbo%20Pascal https://pt.wikipedia.org/wiki/Embarcadero_Delphi%22%20%5Co%20%22Embarcadero%20Delphi https://pt.wikipedia.org/wiki/Microsoft%22%20%5Co%20%22Microsoft https://pt.wikipedia.org/wiki/ECMA%22%20%5Co%20%22ECMA https://pt.wikipedia.org/wiki/Padr%C3%A3o https://pt.wikipedia.org/wiki/2001%22%20%5Co%20%222001 https://pt.wikipedia.org/wiki/2003%22%20%5Co%20%222003 https://pt.wikipedia.org/wiki/Organiza%C3%A7%C3%A3o_Internacional_para_Padroniza%C3%A7%C3%A3o https://pt.wikipedia.org/wiki/Mono_(projeto)%22%20%5Co%20%22Mono%20(projeto)https://pt.wikipedia.org/wiki/Open_source%22%20%5Co%20%22Open%20source https://pt.wikipedia.org/w/index.php?title=Novell_(empresa)&action=edit&redlink=1 https://pt.wikipedia.org/wiki/DotGNU%22%20%5Co%20%22DotGNU https://pt.wikipedia.org/w/index.php?title=Portable.NET&action=edit&redlink=1 https://pt.wikipedia.org/wiki/Free_Software_Foundation%22%20%5Co%20%22Free%20Software%20Foundation https://pt.wikipedia.org/wiki/BDS%22%20%5Co%20%22BDS https://pt.wikipedia.org/wiki/CodeGear%22%20%5Co%20%22CodeGear 9 • C# é mais fortemente tipada do que C++: as única conversões implícitas por default são aquelas que são consideradas seguras, como por exemplo o armazenamento de um inteiro em um tipo de dados maior ou a conversão de um tipo derivado para um tipo base. Não há conversão implícita entre booleanos e inteiros. Apresentação da linguagem c#: Sintaxe da linguagem c#: Using system; Using system.collections.generic; Using system linq; Using system text; namespace Trabalho { class program { static void main (string [] args) { console.writeline (“Olá Mundo”); console.readline(); } } } Os comandos de entrada e saída em c# são: Console.write, Console.writeline e o console.readline 10 Áreas de Aplicações Como todos sabem, a linguagem C# é aplicado ao desenvolvimento de páginas dinâmicas para WEB, programação comercial e desenvolvimento de sistemas em Windows. Assim como C e C++, C# é uma linguagem para programadores. É também uma linguagem preferencial para se programar em .NET. Outro fato não mencionado é de que C# serviu de base para criação de outras linguagens, tais como, Cω, J# e Nemerle. http://pt.wikipedia.org/wiki/C%C3%8F%E2%80%B0 http://pt.wikipedia.org/w/index.php?title=Nemerle&action=edit 11 Impor tância A linguagem de programação C++ foi a programação orientada à objetos pois, possibilita ao programador projetar aplicações de um ponto de vista mais parecido, com comunicação entre objetos. O programador pode programar tanto em alto nível como em baixo nível, entre outras coisas. Porém, devido à semelhança que possui com a linguagem de programação C, herdou os seus problemas de entendimento de sintaxe. C++ foi escolhida por possuir uma proposta de uso genérico, ser rápido e portável para diversas plataformas e também por apresentar grandes possibilidades para a metaprogramação e programação genérica. 12 Vantagens e Desvantagens Vantagens do C# • Maior interatividade com os internautas; • Recursos do ambiente windows; • Programação orientada a objetos; • Não é preciso registrar componentes; • Uso de eventos nos controles; • Validação de dados; • Manipular bancos de dados desconectados; • Tratamento de erros; • COM, COM+ e DCOM (tecnologias comerciais); • SOAP / XML (tecnologias de interação com outras plataformas); • Roda em qualquer plataforma; • Roda em qualquer browser; • Instalação de arquivos. Desvantagens do C# • Os programas e componentes antigos devem ser reescritos; • Difícil aprendizado para programadores mais ortodoxos; • Não é uma linguagem de médio nível. Vantagens do C++ • Produção de código o quanto mais eficiente possível; • Possibilidade em programação de alto e baixo nível; • Alta flexibilidade, portabilidade e consistência; • Adequado para grandes projetos; • Não está sob o domínio de uma empresa (em contraste do Java — Sun ou Visual Basic — Microsoft); • Padronização pela ISO; • Grandes possibilidades para a metaprogramação e programação genérica; • Compatibilidade com C, resultando em vasta base de códigos. Desvantagens do C++ • Compatibilidade com o C, herdou os problemas de entendimento de sintaxe do mesmo; 13 • Os compiladores atuais nem sempre produzem o código mais otimizado, tanto em velocidade quando tamanho do código; • Grande período para o aprendizado; • A biblioteca padrão não cobre áreas importantes da programação, como threads, conexões TCP/IP, interface gráfica e manipulação de sistemas de arquivos, o que implica a necessidade de criação de bibliotecas próprias para tal, que pecam em portabilidade; • Devido à grande flexibilidade no desenvolvimento, é recomendado o uso de padrões de programação mais amplamente que em outras linguagens. 14 Diferenças e Semelhanças Semelhanças A declaração de variáveis é feita da mesma maneira; Os operadores aritméticos e as suas funções são representados da mesma maneira; As exceções em C# não são Verificadas (assim como em C++); As estruturas de Decisão e a estrutura de seleção possuem as mesma sintaxes, nas duas linguagens; As estruturas de Repetição também possuem a mesma sintaxe em ambas as linguagens. Diferenças • C++ não possui modelos (templates), mas C# 2.0 possui genéricos (generics); • A nivel da sintaxe, o c# não permite parâmetros do modo sem tipo de dado; • C++ é uma evolução orientado a objetos da linguagem C enquanto C# é a linguagem de programação usada nas tecnologias .net da Microsoft • • Os genéricos C# não oferecem a mesma flexibilidade que os modelos C++. Por exemplo, não é possível chamar os operadores aritméticos em uma classe genérica C#, embora seja possível chamar operadores definidos pelo usuário. • O C# não permite parâmetros de modelo sem tipo, como template C<int i> {}. • O C# não dá suporte à especialização explícita ou seja, uma implementação personalizada de um modelo para um tipo específico. • O C# não dá suporte à especialização parcial: uma implementação personalizada para um subconjunto dos argumentos de tipo. • O C# não permite que o parâmetro de tipo a ser usado como a classe base para o tipo genérico. 15 • O C# não permite que os parâmetros de tipo tenham tipos padrão. • No C#, um parâmetro de tipo genérico não pode ser genérico, embora os tipos construídos possam ser usados como genéricos. O C++ permite parâmetros de modelo. • O C++ permite o código que pode não ser válido para todos os parâmetros de tipo no modelo, que é então verificado para o tipo específico usado como o parâmetro de tipo. O C# requer código em uma classe a ser gravada de forma que ele funcionará com qualquer tipo que satisfaça as restrições. Por exemplo, em C++ é possível escrever uma função que usa os operadores aritméticos + e - em objetos do parâmetro de tipo, que produzirá um erro no momento da instanciação do modelo com um tipo que não dá suporte a esses operadores. O C# não permite isso. Os únicos constructos da linguagem permitidos são os que podem ser deduzidos das restrições. 16 Conclusão Com base no que foi apresentado as linguagens (c# e c++), são linguagens muito importantes em programação, para o desenvolvimento de aplicativos e não só. Essas linguagens podem também ser usadas também no desenvolvimento de páginas dinâmicas web, porém também são muito usadas no desenvolvimento de sistema em windows e criação de aplicativos. 17 Sugestões 18 Anexos BJARNE STROUSTRUP - DESENVOLVEDORDA LINGUAGEMDE PROGRAMAçãO C++. ANDERS HEJLSBERG - CRIADORDO C#. ALEXANDER STEPANOV - PROGRAMADOR https://pt.wikipedia.org/wiki/Bjarne_Stroustrup%22%20%5Co%20%22Bjarne%20Stroustrup https://pt.wikipedia.org/wiki/Alexander_Stepanov%22%20%5Co%20%22Alexander%20Stepanov 19 Referências Bibliográficas https://pt.wikipedia.org/wiki/C_Sharp https://pt.wikipedia.org/wiki/C%2B%2B https://www.infoescola.com/informatica/c-sharp/ https://www.infoescola.com/informatica/cpp/ https://www.devmedia.com.br /introducao-a-linguagem-csharp/27711 AulasCs(1Bim).pdf http://www.cenapad.unicamp.br /servicos/treinamentos/apostilas/apostila_C.pdf http://informatica.hsw.uol.com.br /programacao-em-c.htm http://www.tiexper t.net/programacao/c/introducao-c.php http://pt.wikipedia.org/wiki/C_(linguagem_de_programa%C3%A7%C3%A3o)#Fer ramen tas_de_programa.C3.A7.C3.A3o http://pt.wikibooks.org/wiki/Programar_em_C/Hist%C3%B3ria_da_linguagem_C#Desenv olvimentos_iniciais http://pt.wikipedia.org/wiki/C%2B%2B http://www.dca.ufrn.br /~xamd/dca0800/apostila_C.pdf http://www6.ufrgs.br /engcar t/PDASR/linguagens.html#3 http://www.ime.usp.br /~ueda/ldoc/notas-c.html http://www.numaboa.com.br /informatica/tutos/chttp://www.xmarks.com/site/www.global.estgp.pt/engenhar ia/Alunos/eSebentas/Tutor iais/c. htm http://paginas.fe.up.pt/~jms/SUC/AulaLab3.pdf http://www.tiexper t.net/programacao/algor itmo/lista-compiladores-c.php http://www2.research.att.com/~bs/iso_release.html http://www.cplusplus.com/info/history/ http://www2.research.att.com/~bs/ http://harmful.cat-v.org/software/c++/I_did_it_for_you_all http://en.wikipedia.org/wiki/C%2B%2B#cite_note-42 http://es.wikipedia.org/wiki/C%2B%2B http://www.dca.ufrn.br /~xamd/dca0800/apostila_C.pdf http://www.youtube.com/watch?v=YYm4tzuSCy0 https://www.infoescola.com/informatica/c-sharp/ https://www.devmedia.com.br/introducao-a-linguagem-csharp/27711 http://www.cenapad.unicamp.br/servicos/treinamentos/apostilas/apostila_C.pdf http://informatica.hsw.uol.com.br/programacao-em-c.htm http://www.tiexpert.net/programacao/c/introducao-c.php https://pt.wikipedia.org/wiki/C_(linguagem_de_programa%C3%A7%C3%A3o)#Ferramentas_de_programa.C3.A7.C3.A3o https://pt.wikipedia.org/wiki/C_(linguagem_de_programa%C3%A7%C3%A3o)#Ferramentas_de_programa.C3.A7.C3.A3o https://pt.wikibooks.org/wiki/Programar_em_C/Hist%C3%B3ria_da_linguagem_C#Desenvolvimentos_iniciais https://pt.wikibooks.org/wiki/Programar_em_C/Hist%C3%B3ria_da_linguagem_C#Desenvolvimentos_iniciais https://pt.wikipedia.org/wiki/C%2B%2B http://www.dca.ufrn.br/~xamd/dca0800/apostila_C.pdf http://www6.ufrgs.br/engcart/PDASR/linguagens.html#3 http://www.ime.usp.br/~ueda/ldoc/notas-c.html http://www.numaboa.com.br/informatica/tutos/c http://www.xmarks.com/site/www.global.estgp.pt/engenharia/Alunos/eSebentas/Tutoriais/c.htm http://www.xmarks.com/site/www.global.estgp.pt/engenharia/Alunos/eSebentas/Tutoriais/c.htm http://paginas.fe.up.pt/~jms/SUC/AulaLab3.pdf http://www.tiexpert.net/programacao/algoritmo/lista-compiladores-c.php http://www2.research.att.com/~bs/iso_release.html http://www.cplusplus.com/info/history/ http://www2.research.att.com/~bs/ http://harmful.cat-v.org/software/c++/I_did_it_for_you_all https://en.wikipedia.org/wiki/C%2B%2B#cite_note-42 https://es.wikipedia.org/wiki/C%2B%2B http://www.dca.ufrn.br/~xamd/dca0800/apostila_C.pdf https://www.youtube.com/watch?v=YYm4tzuSCy0
Compartilhar