Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Senior++ en 26 Septiembre 2012, 17:30 pm



Título: El lenguaje C es bajo nivel?
Publicado por: Senior++ en 26 Septiembre 2012, 17:30 pm
VENTAJAS

Lenguaje muy eficiente puesto que es posible utilizar sus características de bajo nivel para realizar implementaciones óptimas.

A pesar de su bajo nivel es el lenguaje más portado en existencia, habiendo compiladores para casi todos los sistemas conocidos.
Proporciona facilidades para realizar programas modulares y/o utilizar código o bibliotecas existentes.

Es el lenguaje mas popular, la mayoria de los programas que utilizamos dia a día fueron escritos en C/C++, inclusive tu navegador.
Muchos lenguajes derivan de este, ademas algunos fueron escritos en C.

Desventajas
 En C el programador ha de reservar y liberar la memoria explícitamente. Muchas veces llevando a errores y este proceso requiere mas trabajo humano.

El mantenimiento también es más difícil y costoso que con lenguajes de más alto nivel.

C no dispone de sistemas de control automáticos y la seguridad depende casi exclusivamente de la experiencia del programador. La mayor parte de los problemas de seguridad en los sistemas informáticos actuales deriva de haber sido realizados en C.

El tipo de problemas y errores al que el programador se enfrenta hace más difícil aprender C sobre la marcha que en otros lenguajes.


Bueno ustedes estan de acuerdo que lenguaje C es un lenguaje de bajo nivel?


Título: Re: El lenguaje C es bajo nivel?
Publicado por: ecfisa en 26 Septiembre 2012, 20:41 pm
Hola.

La calificación de los lenguajes en niveles máquina, bajo, medio o alto, se corresponde con la mayor o menor cercanía que sus sentencias tengan con la arquitectura del hardware.

Tomando esa categorización, el lenguaje C sería de nivel medio. Siendo, por ejemplo, el Assembler de bajo nivel y el C++ de alto nivel

Cuanto mas bajo nivel se obtiene código mas compacto y veloz, no hay nada más rápido que el código generado por un buén programador en Assembler. Pero esta velocidad se paga con mayor complejidad, tiempo de desarrollo y falta de portabilidad dado su apego al hardware, por lo que en general se utiliza sólo en rutinas donde la velocidad es crítica.

Saludos.