• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Ragazzo_Programmatore

Duvidas !!!

9 mensagens neste tópico

Gostaria que me esclarecessem 3 duvidas.

1- Diferença de uma linguagem scripting para uma linguagem programaçao, quais as diferenças.

2- O que é realmente programação orientada a objectos,e quais a diferenças para uma que não é. Suas vantagens.

3- Diferença de C, c#, c++.

De qualquer forma obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

3- Diferença de C, c#, c++.

C esta contido em C++, C++ foi uma evolução do C no sentido de Poo... sao muito parecidas...mas em C nao existe o conceito de poo, nao existe classes!!C é uma linguagem imperativa...Uso de classes  é uma  caracteristica mto importante de C++, que C# tb ingloba...Tanto C++ como C# sao liguagens no sentido de poo...

2- O que é realmente programação orientada a objectos,e quais a diferenças para uma que não é. Suas vantagens.

Deixo aqui umas definições importante relaccionadas com Poo, que acabam por defenir o conceito de poo:

Classe:

-uma classe é composta por um conjunto de atributos (dados ou objectos) e métodos (funções que manipulam os dados);

ENCAPSULAMENTO:

Encapsulamento é uma característica do paradigma de orientação a objetos que define a regra de que todo e qualquer atributo ou método utilizado apenas pela classe deve ser ignorado por elementos externos.

Os objectos têm a capacidade de esconder uns dos outros detalhes da sua implementação

Quem utiliza os objectos, de uma dada classe, pode considerá-los como uma caixa negra que fornece um conjunto de serviços, não tendo que saber de que forma o objecto está implementado

Desta forma quem cria a classe pode em qualquer instante alterar a forma em como esta está implementada, sem que tal obrigue a quem a utiliza a rescrever código, desde que não altere o conjunto de serviços disponibilizados pela mesma.

POLIMORFISMO: CONCEITO GERAL

Polimorfismo é uma característica da relação de herança, estabelecido através da generalização e especialização entre classes. Um objeto de uma classe especializada “é também” um objeto de uma classe genérica, ou seja, este objeto assume muitas (poli) formas (morfismo).

Por exemplo, considere um objeto da classe Aluno, que por sua vez é derivada da classe Pessoa.

Um objeto da classe Aluno também é um objeto da classe Pessoa.

POLIMORFISMO: UPCAST E DOWNCAST

A linguagem C++ permite a conversão automática de classe de objetos de uma classe especializada para uma classe mais específica (upcast), enquanto que a conversão no sentido contrário deve ser definida de maneira explícita pelo programador. Esta conversão ocorre em passagem de parâmetros, ou explicitamente com a manipulação de ponteiros.

Considere duas classes A e B, sendo B derivado de A.

POLIMORFISMO: FUNÇÕES VIRTUAIS

Outro mecanismo da linguagem C++ que lida com polimorfismo são as funções virtuais. Funções virtuais permitem a escolha do método correto da classe, independente se este objeto está sendo trabalhado através de uma classe base.

→comportamento polimórfico é consequência de a função … virtual.

Vantagens:

1 das vantagens é a reutilização de código ... entre outras...

para mim é complicado explicar este tipo de perguntas...mto frequentes...mas espero que tenhas ficado com umas luzes... no google encontras mtas coisa...  :dontgetit:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

uma nota apenas sobre programação por objectos:

{ antigamente o codigo era uma sucessão de comandos, isto é, criavas codigo para isto e mais à frente podias ter que criar outra vez o mesmo codigo para fazer a mesma coisa (havia alguns truques mas a filosofia era esta)

não havia uma organização do codigo, tipo agrupar o codigo por topicos, tipo, codigo para aceder a bases de dados, codigo para formatar o disco... era apenas codigo e mais codigo e muitas vezes era impossivel manter porque se perdia o fio ao codigo...

a programação por objectos, entre muitas coisas, resolveu isto. o codigo fica arrumado em classes com metodos e propriedades.

propriedades são as caracteristicas tipo o nome e a idade de uma gaja

os metodos são as acções que fazemos sobre o objecto(class) como beija-la, conquistala (não tentem ama-la porque dá buffer overflow)

o codigo fica arrumado e é mais facil trocar codigo entre programadores... eu faço o codigo para gerir gajas e tu não precisas de saber como o codigo está feito, basta saber como usar }

sobre o C e C++ está muito bem explicado em cima e sobre o C# tenho a acrescentar que surgiu na linha evolutiva C > C++ > C#, isto é, o C# foi desenvolvido a partir do C++... e agora perguntam porque é que foi preciso criar o C# se já havia o C++?

h3h3h3 pois... a primeira resposta é que a Microsoft aposta numa coisa que é "Ganhar dinheiro onde não há dinheiro a ganhar" um exemplo é o WinWord... há muito tempo que o Word faz tudo o que precisamos pelo que comprado uma vez nunca mais o compramos... mas o Bill Gates está já numa fase muito avançada do "vicio pelo ganhar dinheiro sem saber porque e sem motivo" e pelo que oiço a abstinencia dos lucros gigantes dá ressacas do carago... qual Casal Ventoso, qual Wall Street, é tudo agarrados, uns a isto outroas aquilo... ops, não é para falar do Bill das gaitas...

queria dizer que muitas vezes criam-se novas versões do produto só para o vender outra vez... quem é amigo quem é?

No caso do C# é para mim algo muito estranho porque o que fizeram foi tornar o C e o VB compativeis... Alguém tinha pedido isso? pois não sei...

Agora há uma coisa chamada .Net Framework que é uma base para código compilado em que todas as linguagens MSFT operam. Existe o CLR, um runtime comum a todas as lingagens .Net como o VB.NET e o C#. Quer isto dizer que se fizeram um soft em VB.NET ou C# o código vai ser compilado para um runtime igual, um soft compilado em CLR fica igual quer tenha sido programado em VB.NET ou C#... interessante? pessoalmente não acho mas o Bill acha e o Bill é que sabe (h3h3h3h3h3h3 pelo menos o Gov Tuga pediu-lhe umas dicas, basta saber de quê h3h3h3h3h3h3 será que portugal ainda pode ser um pais mais injusto? para o Bill tudo é possivel)

Para o VB e o C ficarem amigos foi preciso alterar as linguagens e no caso do VB.NET foram acrescentadas coisas que há muito que os VB developers pediam mas no caso do C# a coisa é muito estranha porque foram retiradas algumas coisas, do tipo, andar menos para os ultimos do pelotão o acompanharem... quem sabe? quem sabe? será o Bill? hummm sem duvida que vai vender mais C#, é a unica coisa que sei sobre o C#...

Resumindo, o C# deverá ser uma linguagem mais acessivel e compativel com o "RAD (Rapid Aplication Development)" que o C++ mas como sempre cada qual faça o seu proprio juizo poque o Bill já fez por todos...

Bill gates foi o primeiro a chamar ladrões a todos os que gostam de IT... palavras para quê...  para ele é tudo dinheiro, até a filha dele tá cotada em bolsa e acho que aquilo é um Crash pegado h3h3h3h3h33h

Common Language Runtime

The common language runtime (CLR) is responsible for run-time services such as language integration, security enforcement, and memory, process, and thread management. In addition, the CLR has a role at development time when features such as life-cycle management, strong type naming, cross-language exception handling, and dynamic binding reduce the amount of code that a developer must write to turn business logic into a reusable component.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pela ajuda malta. :P

Se puderem me explicar a diferença de scripting de linguagem programaçao... :confused:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pela ajuda malta. :P

Se puderem me explicar a diferença de scripting de linguagem programaçao... :confused:

Julgo que não ha nenhuma, mas secalhar estou enganado...

Cumps. Overrun

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Oi mais uma vez...

As diferenças entre Scripting e Programação Standard são mesmo muitas e começam logo com a própria filosofia e objectivos.

Quando alguém faz algo faz esse algo com um objectivo e assim é nas linguagens, quero dizer que quem inicia o processo de criação de uma linguagem têm um objectivo em mente. Isto serve para explicar que as linguagens de scripting têm um objectivo e as outras outro. As fronteiras não estão muito bem definidas sendo um bom exemplo o Python que é uma linguagem de scripting mas têm todo o poder aplicacional do C++ que não  é scripting.

As linguagens de Scripting são processadas no momento em que se invoca o script e são processadas por um Interpretador em vez de um compilador.

Mais uma vez pego no Python e no C++. Em python cria-se um ficheiro .py e cada vez que o querem executar ele é enviado para o Intrepetrador e é depois executado sem ser compilado. É o intrepetador que gere tudo. Em C++ como sabem para executar um programa têm de o compilar primeiro e é no momento da compilação que os comandos são intrepertados e depois compilados para código maquina tipo um file .exe ou .com no win32. Depois de compilado nada se pode alterar no programa a não ser que editem o file em código fonte e o compilem outra vez.

Nas linguagens de scripting é o file de código que é sempre executado, passando no momento da execução pelo intrepertador.

Um caso muito evidente é o ambiente Web.

Temos linguagens como o PHP,  VB Script, JavaScript, Python (com o mod_python) que são puro scripting e o código está em files server side e é executado/interpretado sempre que um user acede ao site. É Intrepertado e Executado sempre que se acede à página. Se por acaso criarem um componente em C++ e compilarem uma DLL esse componente fica em código máquina e é compilado uma vez perdento o contacto com a lingugem original o C++. Depois de compilado é um componente em código máquina como um feito em VB. (antes do .NET o código maquina resultante do C++ e do VB eram muito diferentes, agora graças ao CLR o código maquina resultante dos dois é igual)

E porque tudo isto?

Têm a ver com a filosofia e com o ambiente em que se quer publicar a aplicação. Eu práticamente já não uso linguagens de compilação, só uso linguagens de scripting como o Python (faz tudo e mais que o C++) e o VB Script para administrar ambientes Windows / Active Directory porque é muito rápido a desenvolver, intuitivo e está muito bem integrado nos ambientes windows. É um processo para mim mais rapido, se for preciso alterar algo muda-se no file e invoca-se sem precisar de compilar  novamente e novamente e novamente. (que é um processo relativamente lento como sabem). Num unico passo executa-se um file em código fonte.

Isto é uma visão breve e minimista mas dá para que é novo nisto perceber um pouco mais...

Fiquem bem...

[move]Tributo aos Pink Floyd OFF THE WALL dia 3 Março no Pav. Atlantico[/move]

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que em relação ao Scripting é necessário complementar a resposta dada.

Um Script é um conjunto de operações que pretendemos que o computador execute.

Não que isso não possa ser interpretado como uma linguagem mas se pensar-mos no conjunto de 'comandos' existentes para o DOS começamos a ficar mais afastados de uma linguagem, embora lhe falte pouco para o ser, bem foi evoluindo, mas já tem um for (mais ou menos) um IF, no entanto não é estruturado qualquer desvio da linha principal tem que ser conseguido através de um GOTO (altamente desestruturante, salvo raras excepções, não existem saltos directos para outra parte do código em linguagens estruturadas)

A evolução das linguagens de script fez com que seja possível fazer de tudo o que as 'outras' fazem e mais alguma coisa. Logo as diferenças esbatem-se e estas passam a poder ser utilizadas em vez das 'outras'

Ficam em minha opinião apenas mais 'perto' de Rapid Aplication Development, por não terem que ser compiladas. Just Type and GO.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora