Lengua de Programa, Programa de Maquina


LENGUAJE DE PROGRAMACIÓN Y PROGRAMA DE MAQUINA
CONCEPTOS BÁSICOS  RELACIONADOS CON LA PROGRAMACIÓN Y LA ESTRUCTURAS DE CONTROL 

La Programación esta referida a la preparación de máquinas para que cumplan con una cierta tarea en un momento determinado.
Además esta área  se encuentra muy asociada a la creación de aplicaciones informáticas y videojuegos traducida en 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, tales como C++, Java y Python)

Programa. Consiste en una cadena de instrucciones más un conjunto de datos sobre el cual se trabaja. Estas instrucciones son normalmente ejecutadas en secuencia, con eventuales cambios de flujo causados por el propio programa o eventos externos.
Para realizar este tipo de programas son necesarias las estructuras de control de flujo, que son instrucciones del tipo "si se cumple esta condición, hazlo; si no se cumple, haz esto otro". También existen instrucciones del tipo "repite esto mientras se cumpla esta condición".

Lenguaje de Máquina, representa el sistema de códigos directamente interpretable por un circuito microprogramable, como el microprocesador de una computadora o el microcontrolador de un autómata. Este lenguaje está compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la máquina.
El lenguaje máquina es el único que entiende la computadora digital, es su "lenguaje natural". En él sólo se pueden utilizar dos símbolos: el cero (0) y el uno (1). Por ello, al lenguaje máquina también se le denomina lenguaje binario. La computadora sólo puede trabajar con bits, sin embargo, para el programador no resulta fácil escribir instrucciones tales como:
10100010
11110011
00100010
00010010
Una dificultad añadida a los lenguajes binarios es el hecho de que son dependientes de la máquina (o mejor dicho, del procesador), es decir, cada procesador utiliza un lenguaje máquina distinto (un juego de instrucciones distinto) que está definido en su propio hardware. En consecuencia, un programa escrito para un tipo de procesador no se podrá usar en otro equipo que utilice un procesador distinto, ya que, el programa no será portable o transportable. Para que dicho programa pueda funcionar en una segunda computadora, habrá que traducir todas las instrucciones escritas en el lenguaje máquina del primer equipo al lenguaje binario de la segunda computadora.
Compilación. Consiste en transformar un programa escrito en un lenguaje en otro programa creado en lenguaje máquina

Es el proceso que lleva a la traducción de un software. Esta compilación supone que un programa escrito en un cierto lenguaje de programación es convertido en un programa desarrollado en un lenguaje diferente, que suele ser un lenguaje máquina (un código que puede interpretar un microprocesador de forma directa). La compilación se desarrolla en dos grandes fases: primero se analiza el programa fuente y luego se sintetiza el programa objeto.
Código. es una combinación de caracteres que se emplea para crear y entender mensajes secretos.
Se conoce como código fuente al texto desarrollado en un lenguaje de programación y que debe ser compilado o interpretado para poder ejecutarse en un ordenador, también llamado computadora.

  EL CÓDIGO es un sistema de signos y/o símbolos que requieren de un entrenamiento o aprendizaje por parte del usuario para poder ser empleados correctamente.

El código ASCII (sigla que comúnmente se pronuncia “asqui” y que significa American Standard Code for Information Interchange, o bien Código Estándar Norteamericano para Intercambio de Información) es una representación de los caracteres alfanuméricos que facilita la comunicación entre distintos dispositivos digitales. Las letras, los números, los símbolos y los acentos tienen su correspondiente número ASCII, de manera que programas desarrollados por diferentes personas y equipos fabricados por una u otra compañía pueden entender el texto de la misma forma.

La Teoría de la Comunicación conoce como CÓDIGO al conjunto de signos que deben ser compartidos por el emisor y el receptor de un mensaje para que éste sea comprendido. Si un hombre habla en francés a otra persona que no conoce dicho idioma, la comunicación no será posible ya que el código empleado para la transmisión del mensaje no es conocido por ambos.

INTERPRETACIÓN: Es un programa que analiza y ejecuta otros con lenguajes más complejos. En el contexto de la informática, se llama intérprete a aquel programa que analiza y ejecuta otros programas pero que se hayan codificados con un lenguaje de mayor complejidad.

Consiste en analizar línea a línea, hasta que se traduzca lo suficiente como para poder realizar una tarea. Cabe mencionar que los lenguajes de programación se dividen en dos grandes grupos, donde los que pueden ser compilados no pueden ser interpretados, y viceversa

ESTRUCTURAS DE CONTROL son aquellas que permiten modificar el flujo de ejecución de las instrucciones de un programa. Con las estructuras de control se puede:

·  De acuerdo con una condición, ejecutar un grupo u otro de sentencias (If-Then-Else)
·  De acuerdo con el valor de una variable, ejecutar un grupo u otro de sentencias (Select-Case)
·  Ejecutar un grupo de sentencias mientras se cumpla una condición (Do-While)
·  Ejecutar un grupo de sentencias hasta que se cumpla una condición (Do-Until)
·  Ejecutar un grupo de sentencias un número determinado de veces (For-Next)

Todas las estructuras de control tienen un único punto de entrada, y un punto de salida.
Ahora bien, Las estructuras de control, se pueden clasificar en:
Secuenciales, donde las instrucciones se ejecutan una después de la otra, en el orden en que están escritas, es decir, en secuencia.
 Iterativas, o de repetición, aquellas que se  inician o repiten un bloque de instrucciones si se cumple una condición o mientras se cumple una condición. Las instrucciones iterativas representan la ejecución de instrucciones en más de una vez.
Selectivas representan instrucciones que pueden o no ejecutarse, según el cumplimiento de una condición

Las estructuras de control pueden dividirse en dos: Estructuras de control Condicional y Estructuras de control Repetitivo. Veamos:

Estructuras de control condicionales Las estructuras de control condicional son las que incluyen alternativas de selección en base al resultado de una operación booleana (El resultado de una operación booleana es siempre verdadero o falso), como por ejemplo, una comparación (A=B). Según la expresión sea cierta o falsa, se ejecutará un trozo de código u otro. Es el caso de la sentencia IF(Si) THEN(Entonces) ELSE(Sino)
Otra sentencia de control son las de tipo SWITCH CASE. En este tipo de sentencias se especifica la variable a comparar y una lista de valores con lo que comparar. Aquel que sea el verdadero, se ejecutará:
Otras herramientas imprescindibles del control de la ejecución de nuestro código son los BUCLES o CICLOS. Consisten en un método que permite repetir un trozo de código varias veces.

ESTRUCTURAS DE CONTROL CICLICAS (CICLOS O BUCLES) Los bucles o ciclos, tal como su nombre insinúa, son estructuras de control iterativas, que permiten repetir una cantidad de veces cualquiera una serie de instrucciones. Existen básicamente dos tipos de ciclos o bucles: los ciclos for y los ciclos while, veamos:
BUCLE O CICLO FOR. consiste en una sentencia que engloba un grupo de instrucciones y tiene una variable(normalmente llamada i, de tipo entero) cuyo valor se va modificando en cada iteración.
BUCLE O CICLO WHILE.  consiste en un bucle en el que el código se repite hasta que se cumpla alguna condición booleana (es decir, una expresión que dé como resultado verdadero o falso). Con el ciclo while generalmente es dificil controlar el número de veces que se repetirán las instrucciones.

Quizá la estructura de control más básica y la más utilizada sea IF-ELSE: La instrucción elseif, que como su nombre indica, es una combinación de if y else. Añade una nueva condición en el caso de que la primera fuera falsa y sólo ejecuta las instrucciones si esta nueva condición es verdadera.
Ej.
if ($a > $b) {
// Ejecuta esto si a es Mayor que b
echo("a es mayor que  b");

} elseif ($a == $b) {
// si a no es mayor que be, comprueba si a es igual a b echo("a es igual que  b");
} else {
// si no se cumplen las anteriores condiciones ejecuta ésta hecho ("a es menor  que b");
}
if (condicion) {, // instrucciones que hay que ejecutar si la condición es verdadera
} else { , // Instrucciones que hay que ejecutar si la condición es falsa
}
En castellano sería algo así:

Si (Tal cosa es cierta) {
//  Haz esto.
} En caso contrario {
// Haz esto otro
}
La cláusula else (la parte del if-else que indica lo que hay que hacer si la condición es falsa) es opcional. No es necesario ponerla. Por ejemplo puedo querer un script que sólo me salude a mi.

 BUCLES: WHILE- Los bucles permiten utilizar una condición, para determinar cuántas veces se quiere ejecutar una instrucción:
While (condicion) {
// Instrucciones a ejecutar una y otra
//vez mientras la condición sea cierta
}
El funcionamiento es muy parecido al del if-else, la diferencia radica en que si la condición es cierta y se ejecuta la orden, la condición vuelve a comprobarse una y otra vez mientras siga siendo cierta. En cambio en el if-else sólo se comprueba la condición una vez, si es cierta se ejecuta la instrucción y se sigue con el programa.
$cantidad = 1; $cantidad es igual a uno
while ($cantidad < 10) Mientras el valor de la variable $cantidad sea menor que 10
echo (“$cantidad “); Escribe el valor de cantidad
$cantidad++ (suma 1 al valor que tenga $cantidad, también podríamos haber escrito $cantidad = $cantidad +1)
Observa el funcionamiento del script paso a paso:
$Cantidad es igual a 1
1 es menor que 10
Escribo 1 en pantalla
$cantidad = 2 (1+1)
2 es menor que 10
Escribo 2 en pantalla
$cantidad = 3 (2+1)
Ejecutando este script, en pantalla se vería así: 1 2 3 4 5 6 7 8 9.

BUCLES: DO WHILE:  Los bucles do while, son muy parecidos a los bucles while, sólo que se comprueba si la condición es cierta, al final del bucle en lugar de al principio. Así las instrucciones se ejecutan siempre al menos una vez,
lo que no ocurre en las condiciones while si la condición es falsa.

$cantidad = 1;
do {
echo ($cantidad);
} while ($cantidad<1);

Traducido sería

$cantidad = 1
do ( // ejecuta
echo ($cantidad);       escribe el valor de cantidad
while ($cantidad<1); mientras cantidad sea mayor que 1 -> la condición es falsa luego el programa sale del bucle, pero ha escrito una vez el valor de $cantidad. El resultado en pantalla sería 1

BUCLES: FOR : Los bucles for funcionan exactamente igual que en C . Con una sola instrucción se controla todo el bucle, así que para los vaguetes está muy bien.

for (valor inicial; condicion; ejecutar en cada blucle) {

// Instrucciones a ejecutar mientras la condición sea cierta
}
Ejemplo

for ($cantidad = 1; $cantidad <10; $i++) {
echo("$cantidad");
}
Traducido es igual a:
Cantidad es igual a 1, mientras cantidad sea menor que 10 escribe cantidad en pantalla y después súmale 1 al valor de cantidad. Es decir, es exactamente el mismo ejemplo que se observa en el bucle while pero de otra manera.

- SWICH/CASE
Permite ejecutar un bloque de código u otro dependiendo del valor de una variable.
Ej.
Primero para asignar un valor a la variable, se a hace un formulario:

<html>
<head>
<title> Ejemplo de switch </title>
</head>
<body>

<form action="switch.php" method="get">

¿Quién eres?<br />

<input type="radio" name="quien" value="cgus" /> cgus<br />
<input type="radio" name="quien" value="xela" /> xela<br />
<input type="radio" name="quien" value="adanedhel" /> adanedhel<br />
<input type="radio" name="quien" value="jorgito" /> jorgito<br />
<input type="submit" name="reset" value=" Enviar " />
</form>
</body>
</html>
Switch.php

<html>
<head>
<title>Ejemplo de Swich</title>
</head>

<?php

switch($quien) {
case "cgus": // Primera posibilidad

echo (" $quien es todo un leader ");
break;
case "adanedhel": // segunda posibilidad
cho ("$quien es un elfo");
break;
case "xela": // tercera posibilidad
echo ("$quien es normal");
break;
default: // Posiblidad si no es ninguna de las anteriores
echo ("$quien es un desconocido");
}
?>
</body>
</html>
IDENTIFICADORES: Un identificador es el nombre de variables, métodos, clases e interfaces. Un identificador es una secuencia ilimitada de caracteres alfabéticos o dígitos (unicode) que comienzan con un carácter alfabético. Los nombres pueden incluir el carácter
subrayado (_) y el dólar ($).

NOMBRES VÁLIDOS

NOMBRES NO VÁLIDOS representan total longitud persona distancia una práctica frecuente,  es crear un identificador como una concatenación de dos o más palabras, reparadas por un carácter subrayado o utilizando letras mayúsculas en la primera letra de las palabras.
Salario_ mensual posición Relativa elemento Tabla

Convenio Los identificadores que comienzan con una letra mayúscula se reservan solo  para nombres de clase o interfaces.
Los identificadores que están todos en mayúsculas representan constantes.
Los nombres de las variables y métodos comienzan con letras minúsculas.

TIPOS DE DATOS. Los tipos de datos más simples en Java son: enteros, coma, flotante, boolean, lógicos y caracteres
LITERALES. Los literales permiten valores de tipos primitivo, el tipo string o null se escriben directamente como un texto de programa
VARIABLES. Las variables son unidades básicas de almacenamiento en Java .Una variable se define por la combinación de un identificador, un tipo y un inicializador opcional. Además las variables tiene un ámbito que define su visibilidad y una duración.
 MODIFICACIONES DE VARIABLES:  Las variables se pueden modificar mediante indicadores.
Public .La clase o variable de instancia es accesible desde todos los ámbitos.
Protected. La clase o variable de instancia es accesible solo en el ámbito actual de la clase, el ámbito del paquete actual y todas las subclases de la clase actual.
Private. La clase o variable de instancia es accesible solo en el ámbito actual de la clase.
Final. La variable es una constante , de modo que su valor no se puede modificar.
Static. La variable es una variable de clase, compartida entre todos los objetos instancia de una clase.
Transfert.  Se declara que no es parte de un estado persistente del objeto .
Volatile. Se necesita a veces cuando se utiliza una variable instancia por ¿¿ para prevenir al compilador de su optimización.

ARRAYS. Un array es un grupo de variables de tipos similares que se conocen con un nombre común. Los diferentes elementos contenidos en un array se definen por un índice y se acceden a ellos utilizando su índice; los índices arrancan en 0.
Los arrays pueden ser multidimensionales y al igual que los objetos de la clase se crean utilizando la palabra reservada new.

EXPRESIONES. Las expresiones se utilizan para buscar, calcular y asignar valores. Excepto para una llamada a un método con un tipo de retorno void, todas las expresiones devuelvan un valor, permitiendo a las expresiones combinarse en más expresiones complejas
Las expresiones principales traen o crean valores y son las siguientes:
Las palabras reservadas this, super y null
Un valor literal
Una expresión con paréntesis
Una expresión de campo, utilizando ´.´
Una expresión de índices de array, utilizando ´[]´
Una expresión de llamada a métodos
Una expresión de asignación.

OPERADORES
Los operadores permiten a las expresiones combinarse en expresiones más complejas. Java proporciona una colección grande de operadores que se pueden utilizar para manipular datos, incluyendo operadores aritméticos, asignación, lógicos y de moldeado.
Las reglas de asociación y de prioridad se utilizan para determinar como evaluar expresiones utilizando operadores.

CLASES Una clase es un colección de miembros dato y métodos que define un objeto específico. Es la construcción fundamental del lenguaje Java. Una clase puede ser definida por el usuario o por uno de los paquetes incorporados a Java y se declara con la palabra reservada class. El convenio utilizado para nombrar las clases utilizar una letra mayúscula para la primera letra del nombre de la clase.
CONSTRUCTORES Todos los objetos se deben inicializar cuando se crean, de modo que ellos nacen con un estado bien definido. Un constructor es un tipo especial de método que inicializa un objeto inmediatamente para su creación. Tiene el mismo nombre que la clase y sintácticamente es similar a un método. Los constructores no devuelven ningún tipo y se llaman automáticamente cuando se crea un objeto de la clase.
El constructor se puede sobrecargar para dar múltiples constructores con diferentes tipos de argumento parado. Los constructores se definen generalmente como public. Los valores separan al constructor situándolos dentro e los paréntesis de las sentencias de creación de objetos de la clase.
LA PALABRA RESERVAD THIS La palabra this representa una referencia que se pasa ,implícitamente a cada método no estática. La referencia es al objeto innovador
SINTAXIS ALTERNATIVA

If con construcción alternativa
<?php if ($a==5): ?>
A es igual a 5
<?php endif; ?>
if con elseif y else en el formato alternativo:

if ($a == 5):
print "a es igual a 5";
print "...";
elseif ($a == 6):
print "a es igual a 6";
print "!!!";
else:
print “a no es ni 5 ni 6”;
endif;

While utilizando la construcción alternativa
$i = 1;
while ($i <= 10):
print $i;
$i++;
endwhile;
For con la construcción alternativa
for (expr1; expr2; expr3): sentencia; ...; endfor;
Páginas Multiuso

Páginas multiuso son aquellas que pueden mostrar un contenido completamente diferente dependiendo de alguna condición. De esta forma, podemos hacer varias cosas en un solo documento.

La estructura habitual de una página multiuso es:

<html>
<head>
<title> Página Multiusos </title>
</head>
<body>

<php?
If (condición) { ?>
<!-- HTML que se mostrará si la condición es cierta -->
<?php }else{ ?>
<!-- html que se mostrará si la condición es falsa -->
<?php } ?>
</body>
</html>

O utilizando la sintaxis alternativa que acabamos de ver:

<html>
<head>
<title> Página Multiusos </title>
</head>
<body>

<php?
if (condición): ?>
Es importante resaltar que con La Programación Estructurada se puede:
.Mejorar la productividad de los programadores.
Asimismo, se puede mejorar la legibilidad del código resultante.

A menudo es necesario ejecutar una instrucción o un bloque de instrucciones más de una vez.
Ejemplo
Implementar un programa que calcule la suma de N números leídos desde teclado.
Podríamos escribir un programa en el que apareciese repetido el código que deseamos que se ejecute varias veces, pero…
ß Nuestro programa podría ser demasiado largo.
ß Gran parte del código del programa estaría duplicado, lo que dificultaría su mantenimiento en caso de que tuviésemos que hacer cualquier cambio, por trivial que fuese éste.
ß Una vez escrito el programa para un número determinado de repeticiones (p.ej. sumar matrices 3x3), el mismo programa no podríamos reutilizarlo si necesitásemos realizar un número distinto de operaciones (p.ej. matrices 4x4).

Las estructuras de control repetitivas o iterativas, también conocidas como “bucles”, nos permiten resolver de forma elegante este tipo de problemas. Algunas podemos usarlas cuando conocemos el número de veces que deben repetirse las operaciones.
Otras nos permiten repetir un conjunto de operaciones mientras se cumpla una condición y de Control Avanzadas.
Esta es una de las cosas que permiten que la programación se rija por los principios de la programación estructurada.
La ejecución de un programa estructurado progresa disciplinadamente, en vez de saltar de un sitio a otro de forma impredecible
Gracias a ello, los programas…resultan más fáciles de probar, se pueden depurar más fácilmente y se pueden modificar con mayor comodidad.

Por defecto, las instrucciones de un programa se ejecutan secuencialmente: El orden secuencial de ejecución no altera el flujo de control del programa respecto al orden de escritura de las instrucciones. Sin embargo, al describir la resolución de un problema, es normal que tengamos que tener en cuenta condiciones que influyen sobre la secuencia de pasos que hay que dar para resolver el problema:
Las estructuras de control condicionales o selectivas nos permiten decidir qué ejecutar y qué no en un programa
Ejemplo típico: Realizar una división sólo si el divisor es distinto de cero.

La estructura de control condicional if, La sentencia if nos permite elegir si se ejecuta o no un bloque de instrucciones.
Consideraciones acerca del uso de la sentencia if

- Olvidar los paréntesis al poner la condición del if es un error sintáctico (los paréntesis son necesarios)
- Confundir el operador de comparación == con el operador, de asignación = puede producir errores inesperados
- Los operadores de comparación ==, !=, <= y >= han de, escribirse sin espacios. - => y =< no son operadores válidos en C.
- El fragmento de código afectado por l r la condición del if debe sangrarse para que visualmente se interprete correctamente el ámbito de la sentencia if:
if (condición) {
// Aquí se incluye el código
// que ha de ejecutarse sólo
// si se cumple la condición del if
// (sangrado para que se vea dónde
// empieza y dónde acaba el if)

Error común:
if (condición); sentencia; es interpretado como if (condición)
; // Sentencia vacía
sentencia;
¡¡¡La sentencia siempre se ejecutaría!!!

Ejemplo
Decir si un número es positivo
La cláusula else
Una sentencia if, cuando incluye la cláusula else, permite ejecutar un bloque de código si se cumple la condición y otro bloque de código diferente si la condición no se cumple.

En programación estructurada sólo se emplean tres construcciones:
Secuencia, Conjunto de sentencias que se ejecutan en orden
Ejemplos:
Sentencias de asignación y llamadas a rutinas.
Selección: Elige qué sentencias se ejecutan en función de una condición.
Ejemplos:
Estructuras de control condicional if-then-else y case/switch
Iteración: Las estructuras de control repetitivas repiten conjuntos de instrucciones.
Ejemplos:
Bucles while, do...while y for.
Teorema de Böhm y Jacopini (

Los lenguajes de programación modernos tienen estructuras de control similares. Básicamente lo que varía entre las estructuras de control de los diferentes lenguajes es su sintaxis; cada lenguaje tiene una sintaxis propia para expresar la estructura
PROGRAMACIÓN ESTRUCTURADA.
Estructuras condicionales La sentencia if
La cláusula else
Encadenamiento y anidamiento
El operador condicional ?:
La sentencia switch

Estructuras repetitivas/iterativas
El bucle while
El bucle for
El bucle do…while
Bucles anidados
Cuestiones de estilo
Vectores y matrices
Algoritmos de ordenación
Algoritmos de búsqueda
Otros lenguajes ofrecen estructuras diferentes, como por ejemplo los comandos guardados.


Comentarios