Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Concepto de Programacion

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 16

CONCEPTO DE PROGRAMACION

La programación es el proceso utilizado para idear y ordenar las acciones


necesarias para realizar un proyecto.
Para crear un programa, y que la computadora lo interprete y ejecute, las
instrucciones deben escribirse en un lenguaje de programación. En sus comienzos
las computadoras interpretaban solo instrucciones en un lenguaje específico, del
más bajo nivel, conocido como código máquina, siendo éste excesivamente
complicado para programar. De hecho, solo consiste en cadenas de números 1 y
0 (sistema binario). Para facilitar el trabajo de programación, los primeros
científicos, que trabajaban en el área, decidieron reemplazar las instrucciones,
secuencias de unos y ceros, por mnemónicos, que son abreviaturas en inglés de
la función que cumple la instrucción; las codificaron y crearon así un lenguaje de
mayor nivel, que se conoce como Assembly o lenguaje ensamblador.
La programación se rige por reglas y un conjunto más o menos reducido de
órdenes, expresiones, instrucciones y comandos que tienden a asemejarse a una
lengua natural acotada; y que además tienen la particularidad de una reducida
ambigüedad. Cuanto menos ambiguo es un lenguaje de programación se dice que
es más potente. Bajo esta premisa, y en el extremo, el lenguaje más potente
existente es el binario, con ambigüedad nula.

En los lenguajes de programación de alto nivel se distinguen diversos elementos


entre los que se incluyen el léxico propio del lenguaje y las reglas semánticas y
sintácticas. Estos lenguajes tienen la particularidad de utilizar palabras del idioma
inglés dentro de su léxico, por lo que muchas de ellas tienen una función
específica dentro del lenguaje con el que se está trabajando y no se las puede
utilizar de manera diferente, son las denominadas palabras reservadas. Por otro
lado, otra particularidad de los lenguajes de programación de alto nivel y sus
herramientas de desarrollo es el permitir a los programadores el uso de
comentarios (frases o párrafos sin funcionalidad en el programa), a fin de que
otros programadores entiendan más fácilmente la funcionalidad del código creado.
En la actualidad, la noción de programación se encuentra muy asociada a la
creación de aplicaciones de informática y videojuegos. En este sentido, es el
proceso por el cual una persona desarrolla un programa, valiéndose de una
herramienta que le permita escribir el código (el cual puede estar en uno o varios
lenguajes, como C++, Java y Python, entre otros) y de otra que sea capaz de
“traducirlo” a lo que se conoce como lenguaje de máquina, que puede
"comprender" el microprocesador
LENGUAJE DE PROGRAMACION
Es un lenguaje formal que, mediante una serie de instrucciones, le permite a un
programador escribir un conjunto de órdenes, acciones consecutivas, datos y
algoritmos para, de esa forma, crear programas que controlen el comportamiento
físico y lógico de una máquina.
Mediante este lenguaje se comunican el programador y la máquina, permitiendo
especificar, de forma precisa, aspectos como:
 cuáles datos debe operar un software específico;
 cómo deben ser almacenados o transmitidos esos datos;
 las acciones que debe tomar el software dependiendo de las circunstancias
variables.
Para explicarlo mejor el lenguaje de programación es un sistema estructurado de
comunicación, el cual está conformado por conjuntos de símbolos, palabras
claves, reglas semánticas y sintácticas que permiten el entendimiento entre un
programador y una máquina.
Es importante recalcar que existe el error común de usar como sinónimos el
lenguaje de programación y el lenguaje informático, pero ¿por qué no debemos
confundirlos?
Pues, es debido a que el lenguaje de programación obedece a un conjunto de
reglas que permiten expresar las instrucciones que serán interpretadas por el
programador. Y el lenguaje informático comprende otros lenguajes que dan
formato a un texto, pero no son programación en sí mismos.
Entonces, no todos los lenguajes informáticos son de programación, pero todos
los lenguajes de programación son a la vez informáticos.
El lenguaje de programación es la base para construir todas las aplicaciones
digitales que se utilizan en el día a día y se clasifican en dos tipos principales:
lenguaje de bajo nivel y de alto nivel.
LENGUAJE DE BAJO NIVEL
Son lenguajes totalmente orientados a la máquina. Este lenguaje sirve de interfaz
y crea un vínculo inseparable entre el hardware y el software.
Los lenguajes de bajo nivel tales como el lenguaje ensamblador pueden ser más
difíciles de programar que los lenguajes de alto nivel debido a que están más
íntimamente relacionados con las características técnicas del hardware. Además,
estos suelen carecer de abstracciones de mayor nivel. No es posible una
abstracción fuera de lo estipulado para el conjunto del microcódigo del
microprocesador de un ordenador. Por otro lado, es más fácilmente traducible a
lenguaje de máquina, tarea que realiza esencialmente un compilador.

Además, ejerce un control directo sobre el equipo y su estructura física. Para


aplicarlo adecuadamente es necesario que el programador conozca sólidamente
el hardware. Éste se subdivide en dos tipos:
Lenguaje maquina:
El Lenguaje Maquina es el conjunto de datos que la parte física de la computadora
(Hardware) es capaz de comprender e interpretar "El Código Binario" comprendido
por los Valores 0 y 1 con tensiones comprendidas entre 0 y 4 Voltios y 4 y 5
Voltios respectivamente, las secuencias de estos valores formaran cadenas
de información para que se realice una instrucción.

Este Lenguaje fue el primero empleado por el hombre en la programación de las


primeras computadoras, con secuencias como esta 01101100101001001111
prácticamente se les decía a las computadoras que hacer, esto será muy fácil de
comprender para la maquina debido a que le hablamos en su propio "idioma" pero
es muy difícil de comprender para nosotros. Indicarle a una Maquina lo que debe
hacer es muy distinto que indicarle a un ser Humano lo que debe hacer, aunque
sea la misma orden.
En los tiempos de desarrollo de la "Maquina" el Programador debía usar esta serie
de combinaciones binarias para dictar ordenes siendo él mismo el traductor, poco
después se pensó ¿Si se usara la misma máquina para traducir su propio código?
con esto surgieron los llamados "Compiladores" y lo que se considera el segundo
lenguaje de programación el Lenguaje "Ensamblador o Assambly".
Lenguaje ensamblador.
es un lenguaje de programación de bajo nivel. Consiste en un conjunto de
mnemónicos que representan instrucciones básicas para los computadores,
microprocesadores, microcontroladores y otros circuitos integrados programables.
Implementa una representación simbólica de los códigos de máquina binarios y
otras constantes necesarias para programar una arquitectura de procesador y
constituye la representación más directa del código máquina específico para cada
arquitectura legible por un programador. Cada arquitectura de procesador tiene su
propio lenguaje ensamblador que usualmente es definida por el fabricante de
hardware, y está basada en los mnemónicos que simbolizan los pasos de
procesamiento, los registros del procesador, las posiciones de memoria y otras
características del lenguaje. Un lenguaje ensamblador es por lo tanto específico
de cierta arquitectura de computador física. Esto está en contraste con la mayoría
de los lenguajes de programación de alto nivel, que idealmente son portables.
Un programa utilitario llamado ensamblador es usado para traducir sentencias del
lenguaje ensamblador al código de máquina del computador objetivo. El
ensamblador realiza una traducción más o menos isomorfa (un mapeo de uno a
uno) desde las sentencias mnemónicas a las instrucciones y datos de máquina.
Esto está en contraste con los lenguajes de alto nivel, en los cuales una sola
declaración generalmente da lugar a muchas instrucciones de máquina.
Muchos sofisticados ensambladores ofrecen mecanismos adicionales para facilitar
el desarrollo del programa, controlar el proceso de ensamblaje, y la ayuda de
depuración. Particularmente, la mayoría de los ensambladores modernos incluyen
una facilidad de macro, y se llaman macroensambladores.
Fue usado principalmente en los inicios del desarrollo de software, cuando aún no
se contaba con potentes lenguajes de alto nivel y los recursos eran limitados.
Actualmente se utiliza con frecuencia en ambientes académicos y de
investigación, especialmente cuando se requiere la manipulación directa de
hardware, alto rendimiento, o un uso de recursos controlado y reducido. También
es utilizado en el desarrollo de controladores de dispositivo y en el desarrollo de
sistemas operativos, debido a la necesidad del acceso directo a las instrucciones
de la máquina. Muchos dispositivos programables (como los microcontroladores)
aún cuentan con el ensamblador como la única manera de ser manipulados.
 El código escrito en lenguaje ensamblador posee una cierta dificultad de ser
entendido ya que su estructura se acerca al lenguaje máquina, es decir, es
un lenguaje de bajo nivel.
 El lenguaje ensamblador es difícilmente portable, es decir, un código escrito
para un microprocesador puede necesitar ser modificado, para poder ser
usado en otra máquina distinta. Al cambiar a una máquina con arquitectura
diferente, generalmente es necesario reescribirlo completamente.
 Los programas hechos por un programador experto en lenguaje
ensamblador pueden ser más rápidos y consumir menos recursos del que
el programa equivalente compilado desde un lenguaje de alto nivel. Al
programar cuidadosamente en lenguaje ensamblador se pueden crear
programas que se ejecutan más rápidamente y ocupan menos espacio que
con lenguajes de alto nivel. Conforme han evolucionado tanto los
procesadores como los compiladores de lenguajes de alto nivel, esta
característica del lenguaje ensamblador se ha vuelto cada vez menos
significativa. Es decir, un compilador moderno de lenguaje de alto nivel
puede generar código casi tan eficiente como su equivalente en lenguaje
ensamblador.
 Con el lenguaje ensamblador se tiene un control muy preciso de las tareas
realizadas por un microprocesador por lo que se pueden crear segmentos
de código difíciles y/o muy ineficientes de programar en un lenguaje de alto
nivel, ya que, entre otras cosas, en el lenguaje ensamblador se dispone de
instrucciones del CPU que generalmente no están disponibles en los
lenguajes de alto nivel.

LENGUAJE DE ALTO NIVEL


El Lenguaje de alto nivel es aquel que se aproxima más al lenguaje natural
humano que al lenguaje binario de las computadoras, el que se conoce como
lenguaje de bajo nivel. Un lenguaje de alto nivel permite al programador escribir
las instrucciones de un programa utilizando palabras o expresiones sintácticas
muy similares al inglés. Por ejemplo, en C se pueden usar palabras tales como:
case, if, for, while, etc. para construir con ellas instrucciones como:
if (numero > 0) printf (“El número es positivo”)
Esto traducido al castellano viene a decir que: si número es mayor que cero,
entonces, escribir por pantalla el mensaje: “El número es positivo”. Un lenguaje de
alto nivel se caracteriza por expresar los algoritmos de una manera adecuada a la
capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las
máquinas. Ésta es la razón por la que a estos lenguajes se les considera de alto
nivel, porque se pueden utilizar palabras de muy fácil comprensión para el
programador.
Otros lenguajes de alto nivel son: Ada, BASIC, COBOL, FORTRAN, Pascal
Otra característica importante de los lenguajes de alto nivel es que, para la
mayoría de las instrucciones de estos lenguajes, se necesitarían varias
instrucciones en un lenguaje ensamblador para indicar lo mismo. De igual forma
que, la mayoría de las instrucciones de un lenguaje ensamblador, también agrupa
a varias instrucciones de un lenguaje máquina.

Cuando hablamos de un lenguaje de alto nivel nos referimos al tipo de lenguaje de


programación que no expresa los algoritmos teniendo en cuenta la capacidad que
tienen las máquinas para ejecutar órdenes, sino al que se utiliza teniendo en
cuenta las capacidades cognitivas de los seres humanos. Existen desde la década
de los 50 y nacieron con el objetivo de ir más allá respecto a las limitaciones de los
lenguajes de bajo nivel, permitiendo a los usuarios resolver problemas de una
forma sencilla y rápida.
ALGORITMO
Como algoritmo denominamos un conjunto ordenado y finito de operaciones
simples a través del cual podemos hallar la solución a un problema.
La palabra algoritmo proviene del latín tardío alborarismus, y este a su vez es una
abreviación del árabe clásico ḥisābu lḡubār, que significa ‘cálculo mediante cifras
arábigas’.
Los algoritmos nos permiten ejecutar una acción o resolver un problema mediante
una serie de instrucciones definidas, ordenadas y finitas. Así, dado un estado
inicial y una entrada, y siguiendo los sucesivos pasos indicados, se llega al estado
final y se obtiene una solución.
Todo algoritmo debe cumplir con estas características básicas:

 Tienen inicio y fin: todo algoritmo comienza en un estado inicial con una
serie de datos específicos, y culmina con una solución o salida.
 Funcionan en secuencia: un algoritmo está compuesto por una serie de
pasos ordenados.
 Las secuencias son concretas: cada paso es claro y no deja lugar a la
ambigüedad.
 Los algoritmos son abstractos: son modelos o guías para ordenar procesos.
 La cantidad de pasos de un algoritmo es finita.
En programación, supone el paso previo a ponerse a escribir el código. Primero
debemos encontrar la solución al problema , para luego, a través del código, poder
indicarle a la máquina qué acciones queremos que lleve a cabo. De este modo, un
programa informático no sería más que un conjunto de algoritmos ordenados y
codificados en un lenguaje de programación para poder ser ejecutados en un
ordenador.
No obstante, los algoritmos no son algo exclusivo de los ámbitos de las
matemáticas, la lógica y la computación. Utilizamos numerosos algoritmos para
resolver problemas en nuestra vida cotidiana. Algunos de los ejemplos más
habituales son los manuales de instrucciones o las recetas de cocina.
PROGRAMACION EN ARDUINO
La programación de Arduino es la programación de un microcontrolador. Esto era
algo más de los ingenieros electrónicos, pero Arduino lo ha extendido a todo el
público. Arduino ha socializado la tecnología.
Programar Arduino consiste en traducir a líneas de código las tareas
automatizadas que queremos hacer leyendo de los sensores y en función de las
condiciones del entorno programar la interacción con el mundo exterior mediante
unos actuadores.
Arduino proporciona un entorno de programación sencillo y potente para
programar, pero además incluye las herramientas necesarias para compilar el
programa y “quemar” el programa ya compilado en la memoria flash del
microcontrolador. Además, el IDE nos ofrece un sistema de gestión de librerías y
placas muy práctico. Como IDE es un software sencillo que carece de funciones
avanzadas típicas de otros IDE, pero suficiente para programar.
Estructura de un sketch en Arduino.

La estructura básica de un sketch de Arduino es bastante simple y se compone de


al menos dos partes. Estas dos partes son obligatorios y encierran bloques que
contienen declaraciones, estamentos o instrucciones.
 Setup():La función se llama cuando comienza un boceto. Se usa para
inicializar variables, modos de pin, comenzar a usar bibliotecas, etc. La
función setup() solo se ejecutará una vez, después de cada encendido o
reinicio de la placa Arduino.

 Loop(): Después de crear una función setup(), que inicializa y establece los
valores iniciales, la función loop() hace precisamente lo que sugiere su
nombre y se repite consecutivamente, lo que permite que su programa
cambie y responda. Se usa para controlar activamente la placa Arduino.

Adicionalmente se puede incluir una introducción con los comentarios que


describen el programa y la declaración de las variables y llamadas a librerías.

setup() es la parte encargada de recoger la configuración y loop() es la que


contiene el programa que se ejecuta cíclicamente (de ahí el término loop –bucle-).
Ambas funciones son necesarias para que el programa trabaje.
Un ejemplo puede ser el diagrama de flujo de un sistema de arranque y parada de
un motor DC:
Lenguaje de programación en Arduino.
El lenguaje de programación de Arduino es C++. No es un C++ puro sino que es
una adaptación que proveniente de avr-libc que provee de una librería de C de alta
calidad para usar con GCC (compilador de C y C++) en los microcontroladores
AVR de Atmel y muchas utilidades específicas para las MCU AVR de Atmel.
Las herramientas necesarias para programar los microcontroladores AVR de
Atmel son avr-binutils, avr-gcc y avr-libc y ya están incluidas en el IDE de Arduino,
pero cuando compilamos y cargamos un sketch estamos usando estas
herramientas.
Aunque se hable de que hay un lenguaje propio de programación de Arduino, no
es cierto, la programación se hace en C++ pero Arduino ofrece una api o core que
facilitan la programación de los pines de entrada y salida y de los puertos de
comunicación, así como otras librerías para operaciones específicas. El propio IDE
ya incluye estas librerías de forma automática y no es necesario declararlas
expresamente. Otra diferencia frente a C++ standard es la estructuctura del
programa que ya hemos visto anteriormente.
El lenguaje de programación Arduino se puede dividir en tres partes principales:
funciones, valores (variables y constantes) y estructura.
 Funciones.
El lenguaje de programación Arduino se puede dividir en tres partes principales:
funciones, valores (variables y constantes) y estructura.

 digitalRead ()
E / S digital  digitalWrite ()
 pinMode ()
E / S analógicas  analogRead ()
 analogReference ()
 analogWrite ()
Familia Zero, Due y MKR  analogReadResolution ()
 analogWriteResolution ()
E / S avanzada  noTone ()
 pulseIn ()
 pulseInLong ()
 shiftIn ()
 shiftOut ()
 tono ()
Tiempo  delay ()
 delayMicroseconds ()
 micros ()
 milis ()
Matemáticas  abs ()
 restringir ()
 mapa ()
 max ()
 min ()
 pow ()
 sq ()
 sqrt ()
Bits y Bytes  bit ()
 bitClear ()
 bitRead ()
 bitSet ()
 bitWrite ()
 highByte ()
 lowByte ()
Comunicación  serie
 corriente

 Variables.
Tipos de datos y constantes de Arduino.
Constantes  ALTA | BAJA
 ENTRADA | SALIDA |
INPUT_PULLUP
 LED_BUILTIN
 verdadero | Constantes de
coma flotante falsas
 Constantes
 enteras
Conversión  byte ()
 char ()
 float ()
 int ()
 long ()
 word ()
Tipos de datos  array
 bool byte
 String ()
 unsigned char
 unsigned int
 unsigned long
 void
 word
 Estructura.
Los elementos del código Arduino (C ++).
Estructura de control  break
 continue
 do ... while
 else
 for
 goto
 if
 return
 switch ... case
 while
Sintaxis adicional  #define (define)
 #include (include)
 / * * / (comentario de bloque)
 // (comentario de una sola línea)
 ; (punto y coma)
 {} (llaves)
Operadores de comparación  ! = (no igual a)
 <(menor que)
 <= (menor o igual que)
 == (igual a)
 (mayor que)
 > = (mayor o igual que)
Operadores bit a bit  & (bit a bit y)
 << (desplazamiento de bits a la
izquierda)
 >> (desplazamiento de bits a la
derecha)
 ^ (xor bit a bit)
 | (bit a bit o)
 ~ (bit a bit no)
Operadores compuestos % = (resto compuesto)
& = (compuesto bit a bit y)
* = (multiplicación compuesta)
++ (incremento)
+ = (suma compuesta)
- (disminución)
- = (resta compuesta)
/ = (división compuesta)
Cuando compilamos y cargamos el programa en Arduino esto es lo que ocurre:

Además todo esto no solo es válido para las placas Arduino, sino para muchas
otras placas y microcontroladores que usando el mismo lenguaje de programación
tenemos soporte para compilarlo y transferir el código binario a la memoria flash
del microcontrolador.
Un ejemplo de uso de funciones AVR que no dispone el entorno de Arduino es
cuando queremos hacer delays muy pequeños. La función delayMircoseconds()
puede hacer el delay más pequeño con el lenguaje de Arduino que es de 2
microsegundos.
Para delays menores es necesario usar ensamblador y en concreto la función
‘nop’ (no operation. Cada llamada a ‘nop’ ejecuta un ciclo de reloj que para 16
MHz es un retraso de 62,5 ns.
Los registros son unas zonas concretas de la memoria RAM accesibles directamente
desde la CPU o desde otros elementos del microcontrolador que permite hacer
operaciones directas.

Librerías.
Las librerías son trozos de código hechos por terceros que usamos en nuestro
sketch. Esto nos facilita mucho la programación y hace que nuestro programa sea
más sencillo de hacer y de entender. En este curso no veremos como hacer o
modificar una librería pero en este curso debemos ser capaces de buscar una
librería, instalarla, aprender a usar cualquier librería y usarla en un sketch.
Las librerías normalmente incluyen los siguientes archivos comprimidos en un
archivo ZIP o dentro de un directorio. Estas siempre contienen:
 Un archivo .cpp (código de C++)
 Un archivo .h o encabezado de C, que contiene las propiedades y métodos
o funciones de la librería.
 Un archivo Keywords.txt, que contiene las palabras clave que se resaltan
en el IDE (opcional).
 Muy posiblemente la librería incluye un archivo readme con información
adicional de lo que hace y con instrucciones de como usarla.
 Directorio denominado examples con varios sketchs de ejemplo que nos
ayudará a entender cómo usar la librería (opcional).
La instalación de librerías se puede hacer directamente desde el gestor de
librerías o manualmente.
Además de estas librerías “oficiales” que podemos obtener desde el gestor de
librerías y las publicadas en el playground de Arduino, existen muchos desarrollos
disponibles en Internet y los propios fabricantes de componentes HW publican las
librerías para poder usarlo o incluso la propia comunidad de usuarios.

También podría gustarte