¿Qué es el lenguaje C?

2/16
Recursos

Aportes 110

Preguntas 14

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

¿Para cuando el curso de PLCs?

Mis apuntes:
El lenguaje C es un tipo de lenguaje estructurado. Se ocupan en software de aplicacion, drivers, computadoras para realizar operaciones matematicas super veloces y en sistemas embebidos.

Fue creado por Denis Ritchie quien lo desarrollo en los años 1972 y 1973, lo que queria es hacer un lenguaje mas comprendible. C es un lenguaje Compilado asi tambien es un lenguaje de Nivel Intermedio

El lenguaje C es un lenguaje de propósito general, compilado y de nivel intermedio.
Propósito general : Esto quiere decir que no está pensado para resolver un problema en específico, sino que cualquier problema que puede resolverse con algún programa de computadora puede escribirse utilizando lenguaje C
Compilado : Se analiza todo el texto del programa, se genera un archivo binario y luego se procede a ejecutar.
Nivel intermedio : Donde algunas cosas podemos olvidarnos, como el manejo más básico del hardware, otras no tanto como el manejo de la memoria.
El creador del lenguaje C es Dennis Ritchie.

![](

La programación en C se utiliza, entre otras cosas, para el desarrollo de sistemas operativos. El primer sistema operativo escrito en C fue Unix. Más tarde, otros sistemas operativos como Linux también fueron escritos en C. Pero C no es sólo el lenguaje de programación de los sistemas operativos. C es el precursor e inspirador para casi todos los lenguajes de alto nivel más populares disponibles en la actualidad. De hecho, Perl, PHP, Python y Ruby están escritos mediante programación en C.

He aquí 2 semestres de la universidad resumidos en 15 minutos. 😃 Jajaja

Para aquellos interesados aquí esta el repositorio de Linus Torvalds con el Kernel de Linux, código del cual el 96.6% esta escrito en C.
https://github.com/torvalds/linux

Toda la verdad detras de las palabras del master: -“Hay un lenguaje para cada aplicación…”-

Yo vengo de la programación web y bueno entré como para curiosear un rato, pues en mi ignorancia pensaba que C es un lenguaje antiguo y no tenía sentido saberlo bien “tal vez como para mejorar mis bases”… después de esta clase quede atrapado con C.

¡Al fín! Hasta que se habla de los PLCs

En cuanto a dudas, tengo un montón y dejaré unas palabras desconocidas que para algunos no puede que conozcamos para que podamos investigas más a fondo:
Firmware
PLC (programmable logic controller)
Portabilidad
Licencia GNU
ANSII
Exploits

Yo te recomendaría empezar con la ruta de fundamentos de programación para complementar con esta, ya que así vas entendiendo más lo que Ricardo dice. Yo personalmente estoy haciendo las dos y gracias a la ruta de fundamentos entiendo ciertas cosas, aunque la mayoría de lo que dijo, no tengo ni idea. Pero lo importante es que tenemos internet para buscar 😁.

Long Live to Ladder Language!
| |
| |
-----| |-----*--------| / |------------( )-----|
| |
|----| |-----|

C/C++: Son Alto/medio nivel ya que estos, son mas abstractos, estan basado al malware.
Lenguaje ensamblador. intel X86 de 32bits. Actualmente existe un estandar entre intel y amd para que los sistemas operativos de 32 o 64 bits funcionen en ambos procesadores.
Codigo representacion hexadecimal y binario que es lo que lee las cpu Bits.

Dos lenguajes de programación que vale la pena dominar son C y C++ en particular si uno tiene interés en el mundo de la seguridad informática. Sin embargo, eso no debe ser una limitante para conocer y dominar otros lenguajes de programación particularmente en un mundo dominado por Internet es crucial dominar Javascript.

  • Es un lenguaje de tipo estructurado que se ejecuta en orden específico, es decir, línea por línea.
  • Soporta recursividad.
  • Se considera fuertemente tipado, por lo que se debe decir de que tipo son las variables, cuanta capacidad de memoria se va a poder almacenar, de que tamaño son los datos que se van a estar manejando.
  • Se ocupa mucho en OS, software de aplicación, drivers, y sobre todo en sistemas embebidos.
  • Coordina la comunicación y operación de sensores.
  • La mayoría de PLC’s usa C.
  • Es un lenguaje compilado, al cual se le debe especificar a qué sistema operativo se quiere que apunte. En algunos casos se debe diseñar con portabilidad para cada tipo de OS.
  • Permite tener control de memoria y de la velocidad en el tiempo de ejecución.

Origen del lenguaje C

Tenemos que viajar hasta 1972 para ver el nacimiento del lenguaje de programación C (y el sistema operativo UNIX) de la mano del científico informático estadounidense Dennis Ritchie (con la ayuda de Ken Thompson). Recibió el nombre de C simplemente por una cuestión alfabética, ya que sustituyó a sus lenguajes predecesores B y BCPL que codificaban la minicomputadora PDP-7. El desarrollo del lenguaje C toma protagonismo para la creación del sistema operativo UNIX que llevarían consigo los nuevos minicomputadores PDP-11, primeros en conectar el procesador, los periféricos y la memoria entre sí mediante un BUS bidireccional.

Características del lenguaje C
Son varias las características de C tal y como vemos a continuación.

  • Estructura de C - Lenguaje estructurado.
    Programación de nivel medio (beneficiándose de las ventajas de la programación de alto y bajo nivel).
    No depende del hardware, por lo que se puede migrar a otros sistemas.
    Objetivos generales. No es un lenguaje para una tarea específica, pudiendo programar tanto un sistema operativo, una hoja de cálculo o un juego.
    Ofrece un control absoluto de todo lo que sucede en el ordenador.
    Organización del trabajo con total libertad.
    Los programas son producidos de forma rápida y son bastante potentes.
    Rico en tipo de datos, operadores y variables en C.

Como inconvenientes, siendo también características del lenguaje C, debemos decir que no es un lenguaje sencillo de aprender, que requiere una continua práctica y un serio seguimiento si queremos tener el control de los programas.

Sintaxis en C

Todos los programas que son creados tienen un diferentes tipos de formato. Este formato es conocido como la sintaxis. La sintaxis en C es una serie de reglas y procesos que lideran la estructura de un programa. Estas reglas tienen que ser entendidas por el compilador para que se pueda crear un programa en C válido, es decir, tienen que establecer cómo comienza una línea de código en C, cómo termina o cuándo usar, por ejemplo, comillas o llaves. El lenguaje en C hace distinción entre mayúsculas y minúsculas siendo este el motivo por el que se programa en minúsculas.

La sintaxis básica en C determina la forma en que se agrupan los caracteres para formar tokens, que son la unidad mínima de programación en C. Tomando como ejemplo el programa “Hola Mundo”, usado para la introducción a la mayoría de lenguajes de programación, tendríamos el siguiente código en C:

#include

int main()

{
printf(“Hola Mundo”); // línea sencilla de comentarios
return 0;
/*
línea
múltiple de
comentarios
*/

}

Si seleccionamos sólo la línea de código printf, tendríamos los siguientes tokens: printf, (, “, Hola Mundo, “, ), y ;. Por lo tanto, podemos decir, que estos tokens son los pequeños bloques con los que se programa en C, pudiendo ser variables, identificadores, constantes, palabras clave, símbolos que comprenda el lenguaje o sentencias en lenguaje C.

El comienzo de todo programa en este lenguaje debe comenzar por #include cuya función es inicializar el entorno de trabajo; en nuestro ejemplo, vinculando el archivo stdio.h (biblioteca de C) que a su vez contiene la orden printf.

La función en lenguaje C int main() hace que el programa vuelva a ese punto de retorno tras ejecutarse y su orden está delimitada entre {}.

Cómo en la mayoría de los lenguajes de programación, nos podemos ayudar de comentarios que el compilador no procesará pero que nos serán de mucha utilidad a la hora de aclarar cualquier concepto en la línea de código. Podemos hacer los comentarios en lenguaje C de dos maneras; una única línea de comentario comenzando con // o en múltiples líneas comenzando y terminando por /*.

Bibliotecas de C

Al hablar de bibliotecas en lenguaje C nos referimos a una serie de librerías que son usadas en este lenguaje de programación y están formadas por una serie de código con el que podemos leer el teclado, realizar operaciones matemáticas, imprimir en pantalla… La biblioteca referente es la estándar de ANSI C formada por 24 archivos de cabecera. Según su tarea, se clasifican en categorías, como por ejemplo matemáticas, de salida y entrada, de uso de textos, de gestión de memoria…

Entre las librerías más destacadas encontramos stdio.h (de entrada y salida), conio.h (potente gestión de textos), math.h (encargada de operaciones matemáticas), time.h (obtienen fecha y hora actual para poder utilizarla según sus necesidades), etcétera.

En estos momentos, podemos concluir que el lenguaje de programación C es el idóneo para programar sistemas operativos debido a su cercanía en el lenguaje, al igual que cumple con creces en la creación de programas de otra índole y ofrece a los programadores un control total sobre la memoria pudiendo asignarla cómo, cuándo y dónde quieran. Otro punto a destacar es la gran variedad de bibliotecas (como las estándar ASCI) que facilitan mucho al programador la redacción de las acciones a realizar.

Pese a sus virtudes a la hora de programar a nivel de sistema y su versatilidad para afrontar la creación de infinitas clases de aplicaciones, el lenguaje C no siempre es la mejor opción para el programador, sobre todo para el desarrollo de aplicaciones, ya que puede tener errores de compilación que otros lenguajes basados en C, como Java o C++ solventan sin problemas. Tampoco debemos olvidar que no es un lenguaje de programación sencillo, por lo que necesita de mucha disciplina en su estudio y puesta en práctica. Esta dificultad puede verse reducida por la perfecta estructuración del código y por la rapidez y potencia con la que las aplicaciones son generadas.

En conclusión, entendiendo su estructura básica y logrando la familiarización con algunas de sus bibliotecas, no tardaremos en convertir este lenguaje en uno de nuestros favoritos, y podremos empezar así a programar en C con soltura.

¿Qué es el lenguaje C?
Es un lenguaje de programación estructurado, es decir que se ejecutan las instrucciones del código en orden especifico que se tenga, esto suele ser que comienza en la primera línea y de ahí para abajo, línea por línea.
Aquí no existen como tal las clases y objetos, pero existen los Structs que son como sus precursores. Sin embargo, en este lenguaje se pueden usar librerías y funciones.
C es un lenguaje estructurado que soporta la recursividad, y es de tipo fuertemente tipado. Esto le da un margen amplio de aplicaciones a dicho lenguaje como: sistemas operativos, software de aplicaciones, controladores, en sistemas embebidos, firmwares, etc. En realidad está en todos lados.
En la industria, existen unos dispositivos llamados PLC (Controlador lógico programable), que son microcontroladores que tienen circuitos específicos que les permiten poder ser circuitos industriales que soporten voltajes altos, soportar temperaturas, etc. Estos a su vez tienen firmwares específicos que te da el fabricante y te va a permitir programarlos.
La gran mayoría de los sistemas de fabricas están hechos con PLCs, y obviamente C está dentro de estos. Muchas veces, el software que da el fabricante lo que hace es pasar ese código a un lenguaje intermedio ©, y después al lenguaje máquina.
C fue creado en 1972-1973 por Dennis Ritchie, y su enfoque era desarrollar un lenguaje que fuera más comprensible y útil para desarrollar aplicaciones en el sistema operativo UNIX (este es el precursor de Linux), pero a su vez fuera compatible con otros sistemas operativos y que permitiera la portabilidad.
El lenguaje C es compilado, es decir, que se tiene que pasar por un compilador y apuntar a un sistema operativo en específico; el compilador toma tu código y te genera un ejecutable para ese sistema operativo.
Muchas veces el código no va a funcionar directamente en los otros sistemas operativos sin cambios, hay que ser conscientes que para que un código en C pueda usarse en otros sistemas debes diseñarlo con portabilidad en mente, de ahí que sigas los estándares de ANSI C, y que seas capaz de decidir qué librerías usar correctamente para que sistema operativo con sus respectivas funciones, y así poder decidir, con la portabilidad en mente, que puedo usar está función u otra función.
En lenguajes como JS puedes ejecutar su código en cualquier navegador de cualquier sistema operativo porque este tiene su propio motor (JS Runtime environment) como V8 o Node-JS, en cambio C debe ser compilado para traducir su código a código máquina del sistema al que tú estás apuntando para que te permita ejecutarlo.
Hay lenguajes como Java que esa compilación le es transparente al usuario, y es gracias a que tienen una máquina de virtualización (Java Virtual Machine), esto le permite que un solo código sin ningún cambio se pueda ejecutar en varios sistemas.
¿Qué gana C al ser un lenguaje compilado?, le permite tener mucho control de la memoria y velocidad en tiempo de ejecución. Aquí entramos a los lenguajes de alto, medio y bajo nivel.
Los lenguajes de alto nivel son aquellos que su lectura y comprensión son más fáciles de aprender para los humanos, en cambio, los de bajo nivel, son al contrario.
Lenguajes como Perl, Python, Shell, JS son interpretados, esto quiere decir que van a correr en su propio intérprete que luego se va a encargar de pasarlo a la computadora. Por ejemplo, JS tiene un motor (V8) que está escrito en C++.
Después les siguen los lenguajes de medio nivel como C y C++; que son lenguajes más abstractos. Como dato curioso, la mayoría de los Malware están escritos en estos lenguajes, ya que son lenguajes que te dejan acceder a cosas muy dentro de tu computadora como la memoria.
Después tenemos lenguajes de montaje o ensamblador, como el Intel x86 que son sets de instrucciones que da el fabricante del CPU.
*Un poco de historia: hubo una época donde Intel sacó x86, el cuál era un set de instrucciones para sus CPU’s de 32 bits, y AMD lo adaptó también a los suyos, pero esté último sacó AMD64 el cual era un extensión a los sets de x86, y se volvió un estándar para CPU’s de 64 bits. El hecho de que esto sea estándar permite que tengas una computadora con un CPU Intel o AMD y que no pase nada de que puedas instalar Windows a cualquiera de las dos, y que no tengas que instalarte una versión de Windows para Intel y otra para Intel, ¿por qué?, porque todos los CPU’s modernos de hoy en día ocupan el set de instrucciones AMD64.
Por último tenemos representación hexadecimal, el cuál es lenguaje máquina. Y tenemos código binario, el cuál solamente los CPU’s pueden leer.

Estaría genial que hicieran un curso de Rust

wow pense que C era como java pero si tiene varias cosas distintas

motivacion para aprender este exitoso lenguaje de programación

¿Arduino se puede considerar un plc? o es totalmente diferente.

muy interesante

Está tremendo esto!, no puedo esperar para ver toda la ruta de aprendizaje de C y C++

Emocionado por aprender otro lenguaje de programación y es interesante lo que dice que no solo te quedes con un lenguaje y que quieras hacer todo con eso y tiene mucha razón estoy haciendo la carrera de Data Science pero vi el curso de C y me intereso intentar aprenderlo.

Buenas, después de dos meses de ausencia debido a que no lograba comprender el curso de C 2019, tuve que realizar un aprendizaje más a detalle mediante rutas alternas, y llego me encuentro con que ahora existe este curso alterno que puede dar un mejor panorama, bueno habra que probar. PD: pense que habia desaparecido el curso anterior pero ya lo encontre ahora ocupo decidir si termino aquel o este o los dos jajaja.

Primer curso que tomo con Ricardo y WOW, que agradable 😃

Debí tomar este curso antes que el de algoritmos :´(

que gran explicación Celis!

interesante saber el modelamiento de los lenguajes!

Genial, devuelta el curso.
Así que es un lenguaje que se usa en todos lados, en código de bajo nivel.

Me emociona mucho el curso!!! 😉

Me siento retado ya que de todo lo que estas explicando entiendo poco. Eso quiere decir que se poco sobre este mundo. Hay mas espacio para aprender.

excelente inicio del curso

Súper emocionada, hasta ahora solo había tenido contacto con Python, así que definitivamente estamos subiendo de nivel!

Este seria uno de los primeros lenguajes aprender sin importar la complicación del lenguaje ya que este te permite poder entender los que han sido creados con ayuda de este.

Mi profesor de Assembly siempre dice que C es lenguaje de alto nivel, y la verdad luego de codear mucho en Assembly, pasar a C se siente excelente

Que buen cursoo

Espectacular este curso !!

Hay una linea de Keyence tiene lenguaje hibrido emtre C y ladder

Tambien mitsubishi tiene una linea que corre scrips de C

Siempre me ha interesado el tema del malware, pero nunca he visto muy clara la ruta para desarrollar alguno, esto es mas que nada por temas de estudio

Excelente introducción.

Buen dato lo de Node JS con Javascript, suena interesante y espero pronto poder profundizar en ello.

Estoy muy feliz de comenzar un nuevo curso que me demande y me desafíe, quiero en el futuro pertenecer a una comunidad linux por ello pensé ir aumentando mis conocimientos.
Eres un excelente profesor y me parece excelente ir paso a paso aprendiendo un lenguaje

AMD64 o x64 (también conocido como x86_64) es la versión de 64 bits del conjunto de instrucciones (para la CPU) x86. Soporta una cantidad mucho mayor de memoria virtual y memoria física de lo que le es posible a sus predecesores, permitiendo a los programas almacenar grandes cantidades de datos en la memoria.

x86-64 también provee registros de uso general de 64 bits y muchas otras mejoras. Un registro es una memoria de alta velocidad y poca capacidad, integrada en el microprocesador, que permite guardar transitoriamente y acceder a valores muy usados, generalmente en operaciones matemáticas.

que buen repaso de los niveles en los lenguajes

Estoy viendo este curso porque la explicacion y material que me dio mi maestra para la clase programacion estuvo muy aburrida xd

Antes cuando me hablaban de programación, lo que se me venía a la mente era el lenguaje de ensamblador

Sería bueno que hayan cursos de RPG!
Ya vi algunos de Cobol!

Me gusta el entusiasmo del maestro, me lo pega jajaja ya me emocionó este curso!

Qué buena clase! Claro que con explicaciones como la de esta clase me emociona el curso! 😄

Siempre estuve volviéndome viejo leyendo libros de C

seria peerfecto mas cursos de robotica , la carrera de internet of things se queda muy corta y no explica muy bien algunos conceptos

El creador del lenguaje C es Dennis Ritchie.
El lenguaje C es un lenguaje compilado.
Es un lenguaje de Nivel Alto/Medio

Todo suena muy bien =)

Aquí un poco más de información sobre este lenguaje de programación.

https://informatica.uv.es/estguia/ATD/apuntes/laboratorio/Lenguaje-C.pdf

Me pareció una introducción muy buena. Creo que c es el lenguaje que buscaba

Considerando lo que digo el maestro acerca de que los lenguajes de nivel medio o de bajo nivel son los mas utilizados por los hackers, conviene aprender estos lenguajes, ya que uno puede ser un hacker con valores que ayuda a las empresas con seguridad informatica

Hey chicos, un amigo y yo hemos creado un grupo de Telegram para poder compartir Hacks de programación, ayudarnos con cualquier pregunta sobre Dev y además crear proyectos de código juntos. Te estamos esperando!

https://t.me/HackTzi

También tenemos una organización de GitHub donde pondremos nuestros proyectos, únete por aquí:

https://github.com/HackTzi

No están los slides:c

ahora entiendi cuando me decian que C era un lenguaje de nivel bajo… imcreible la facilidad con la que enseña…

El standard que se menciona para AMD e INTEL existe de igual forma para los teléfonos Celulares y Tablets?

Y ahora que va a pasar con Apple que va dejar de usar los procesadores Intel y va emigrar a una arquitectura de procesadores ARM, como ya no van a compartir el mismo estándar no será más trabajo para toda industria de software ya que van a tener que diseñar para dos estándares diferentes, o será que el ARM se convierta después en un estándar general?

Me emociona saber que conceptos no se hasta ahora de C XD

El paradigma de programación estructurado hace referencia a que no puedes saltar de repente con Gotos y que usas una estructura de datos, una pila, para construir el llamado de funciones.

Terminando este curso iré a ver el de Microcontroladores

¡Nunca te cases con una tecnología!, super importante

muy bien explicado todo, ahora me queda mas claro que puedo hacer con el lenguaje c y el funcionamiento principal de otros lenguajes.

Información muy interesante, para recordar conceptos.

Muy bueno

Muy interesante todas las cosas que se puede hacer con C. Soy estudiante en Ingeniería Electrónica y con este curso y los demás con respecto a C, me ayudarán bastante en mi crecimiento profesional. ¡Vamos con todo!

C es un lenguaje que te permite tener mucho control de la memoria, mucha velocidad de ejecución.

Apple me rompió el corazón cuando anuncio que rompió con Intel, la virtualizacion en equipos Mac ya no sera lo mismo como lo mencionaba Freddy en el ultimo live 💔

C es un lenguaje que te permite tener mucho control de la memoria, mucha velocidad de ejecución.

C es un lenguaje que te permite tener mucho control de la memoria, mucha velocidad de ejecución.

C es un lenguaje que te permite tener mucho control de la memoria, mucha velocidad de ejecución.

Increible, con el lenguaje C podemos hacer aplicaciones que logran leer la memoria ram

Excelente clase y maestro!

Con eso de aprender un lenguaje para cada cosa, entonces deberia aprender kotlin en lugar de xamarin? :c

por qué aprender C por encima de c++ ? ventajas desventaas?

Es bueno complementar los lenguajes de bajo con alto nivel según veo en el vídeo, uno te permite entender mejor la memoria y querer optimizar tus aplicaciones, el otro te hace entender de forma más simple la programación.

jajajs ya podremos hackear

Lenguaje estructurado
Tiene recursividad
Fuertemente tipado
Lenguaje compilado(de C pasa a bites por medio de un .exe)
Control & velocidad.
Puede acceder muy dentro de la computadora.
Esta en muchas pares de la tierra.

Muy buena introducción!
Vamos a aprender C!

Un curso de PLC, Por favor profe.

El lenguaje C me parece muy interesante para desarrollar aplicaciones que controlen el hardware

Muy emocionado

Entonces, C es un lenguaje principalmente utilizado para la programación de drivers y sistemas embebidos, Esto gracias a que es fuertemente tipado y nos permite tener mayor control de memoria. C está enfocado en el paradigma de programación estructurada, se encuentra en un nivel intermedio y es un lenguaje compilado.

Genial introducción 😃

Es una programación estructurada, se ejecuta el código parte por parte, es tipado, que tipo de datos, tamaño de memoria.
Se un usa en S.O en driver, sensores.
C es un lenguaje nivel intermedio.
PLC --> Bloques de programación o escalera, maneja corrientes mayores. y este es transformado a C.
Dennis Ritchie --> Fundador del código en C. Este código es compila-ble. JavaScript no necesita ser compilado, mientras que C si.
Los lenguajes de mas alto nivel son los mas fáciles de comprender o interpretar y no corren sobre el hardware. Estos son Perl, Python, Shell, JavaScript, estos necesitan ser interpretados.

c es el mejor leguanje
junto con c++

Me encanto la explicación.

C es un lenguaje de programación de propósito general​ originalmente desarrollado por Dennis Ritchie entre 1969 y 1972 en los Laboratorios Bell, ​ como evolución del anterior lenguaje B, a su vez basado en BCPL. ​​​Al igual que B, es un lenguaje orientado a la implementación de sistemas operativos, concretamente Unix.

Esta clase fue muy enganchante.

Me alegro de haber tomado esta clase despues de empaparme en otras areas como data science y web. Ahora, este contexto historico me importa y me ayuda a comprender mucho de lo que sufro luego

En realidad javascript sí es un lenguaje compilado, la compilación es transparente al usuario, a Python le pasa algo parecido:
[(https://medium.com/@pharesdiego/javascript-un-lenguaje-compilado-o-interpretado-962ee405e123)]

Me encanta el enfoque dado. Super interesante!

Con todas las ganas a iniciar este curso!!!

Es posible en estos tiempos que existan programadores que hagan lenguaje de maquina?

Una explicación muy completa, así debe ser gracias.