Qué Es El Lenguaje Digital

24
¿Qué es el lenguaje digital? El lenguaje digital es una codificación especial creada por el ser humano para relacionarse y comunicarse con las computadoras a fin de generar resultados concretos ordenando a cada robot en el lenguaje de programación que cada uno entiende. ¿Cómo funciona? Este lenguaje se basa en el código binario que transforma cualquier número dado en una combinación de 1 y 0. Esto significa que cada acción o cada cosa que la máquina se supone debe hacer, está codificada con un número dado. Si presiona "enter" en el teclado del portátil, el equipo enviará un pulos eléctrico para el sistema operativo del ordenador que lo interpretará como una combinación de 0 y 1, o términos más simples, en pulsos positivos y negativos. Luego, una vez que la señal se transforma en el código binario, el equipo realiza la acción que ha sido registrada para la codificación específica. ¿Para qué sirve? Como vemos el lenguaje digital tiene la característica de comunicar a la máquina una gran variedad de acciones que nos permitan conseguir una amplia gama de funciones desde tareas científicas hasta obras de arte y nos ayuda a encontrar respuestas a problemas comunes y sencillos o a cálculos muy complicados. Los idiomas digitales nos permiten decir a las computadoras: "hey! Quiero ver a Marte" y si el robot tiene el software y el hardware para hacerlo, verás Marte. PERL Se trata de un potente lenguaje y un componente esencial en materia de cyberseguridad. Perl impulsó la web desde sus inicios y

description

LENGUAJE DIG

Transcript of Qué Es El Lenguaje Digital

Qu es el lenguaje digital?El lenguaje digital es una codificacin especial creada por el ser humano para relacionarse y comunicarse con las computadoras a fin de generar resultados concretos ordenando a cada robot en el lenguaje de programacin que cada uno entiende.

Cmo funciona?Este lenguaje se basa en el cdigo binario que transforma cualquier nmero dado en una combinacin de 1 y 0. Esto significa que cada accin o cada cosa que la mquina se supone debe hacer, est codificada con un nmero dado. Si presiona "enter" en el teclado del porttil, el equipo enviar un pulos elctrico para el sistema operativo del ordenador que lo interpretar como una combinacin de 0 y 1, o trminos ms simples, en pulsos positivos y negativos. Luego, una vez que la seal se transforma en el cdigo binario, el equipo realiza la accin que ha sido registrada para la codificacin especfica.

Para qu sirve?Como vemos el lenguaje digital tiene la caracterstica de comunicar a la mquina una gran variedad de acciones que nos permitan conseguir una amplia gama de funciones desde tareas cientficas hasta obras de arte y nos ayuda a encontrar respuestas a problemas comunes y sencillos o a clculos muy complicados. Los idiomas digitales nos permiten decir a las computadoras: "hey! Quiero ver a Marte" y si el robot tiene el software y el hardware para hacerlo, vers Marte.

PERLSe trata de un potente lenguaje y un componente esencial en materia de cyberseguridad. Perl impuls la web desde sus inicios y todava se considera una herramienta esencial para cualquier profesional IT.DESCRIPCIN TCNICAPerl es un lenguaje interpretado optimizado para la lectura y extraccion de informacin de archivos de texto, generando reportes basados en la informacin proporcionada por ellos. Es tambin un lenguaje bastante utilizado para muchos sistemas manipuladores de tareas como lenguaje de contenido dinmico. Este lenguaje tiene una orientacin mas prctica (facilidad de uso y eficiencia) que esttica (elegancia, minimalidad).

Tipo de datosPerl tiene bsicamente cuatro tipos de datos: escalares, arreglos (o listas), hashes y referencias. Escalares son aquellas variables que tienen un nico valor definido. Pueden ser nmeros (enteros o de punto flotante), strings o referencias. Se denotan con un nombre de variable precedido de un signo $.Los arreglos o listas son conjuntos ordenados de escalares, indicados por un nmero (usualmente se cuenta desde cero ascendentemente). Arreglos completos se denotan con un nombre de variable precedido de un signo @; un valor especfico de un arreglo, en cambio, se denota con un signo $ y un indice entre corchetes: {$}var[1].Los hashes o arreglos asociativos son conjuntos no ordenados de escalares, indicados por una llave.Las referencias son en realidad un tipo ``mgico'' de escalares. Contienen un ndice a un area de memoria donde hay un dato almacenado, junto con un indicador del tipo de dato al que apuntan. Dado que son escalares, es posible construir arreglos o hashes de referencias; esto hace posible instanciar casi cualquier estructura de datos. Las referencias son especiales, adems, porque son fuertemente tipadas: mientras que los escalares corrientes son nmeros o strings dependiendo del contexto de evaluacin, no es posible usar una referencia de otra manera que como fue definida (es decir, una referencia a un arreglo nunca puede ser una referencia a un escalar, etc.). Es posible leer una referencia en contexto de string, y esto entrega su valor (algo como "HASH(0x804b620)'' es la representacin en string de una referencia a un hash).

Estructura de controlPerl soporta las estructuras clsicas: if, for, while, do. Agrega tambipen otras menos corrientes: unless, foreach, until y el condicional ternario?:. Estas estructuras pueden combinarse con etiquetas, obtenindose resultados bastante interesantes. Veamos el siguiente:

OUTER: for my $wid (@argy1) { INNER: for my $jet (@ary2) { next OUTER if $wid > $jet; wid += $jet; } } Aqu vemos otra caracterstica de Perl, la palabra clave "my'' que se usa para indicar el entorno lxico de una variable. En el caso del for del ejemplo, se indica que la variable $jet solo esta definida en el bloque INNER, y si tratara de leerse en el bloque OUTER (fuera de INNER) se encontrara indefinida.Vemos tambin que next (As como redo y last) pueden recibir una etiqueta de salto (Ms bien, de bloque). Esto hace innecesaria la instruccin goto que plaga algunos programas en C debido a la inexistencia de estas etiquetas.

EncapsulacinPerl provee manejo de objetos apropiado. Cada clase es un paquete que provee mtodos para trabajar con los objetos que se definen; el paquete decide qu interfaces exporta para sus objetos. Esto provee un nivel de encapsulacin apropiado.Bajo el cap, un objeto en Perl es simplemente una referencia bendita (bless es una funcin que le indica a la referencia que pertenece a una clase.). A esa referencia pueden aplicrsele los mtodos que la clase define. Existen mtodos especiales que devuelven un objeto; por ejemplo, un constructor. Perl soporta herencia mltiple.Adems de clases existen mdulos. Los mdulos son una forma procedural de encapsulacin en Perl. Proveen espacios de nombres de variables separados del espacio principal; esto permite tener funciones separadas del cuerpo principal e importarlas segn sea necesario. Las clases son, simplemente, una variante especial de mdulos. Sistema de TiposPerl no es un lenguaje que controle la correctitud y unicidad de los tipos. Las variables en Perl cambian de tipo segn el contexto (strings o nmeros). Adems, dependiendo del contexto los tipos mltiples (arreglos y hashes) pueden tener comportamientos especiales, como retornar la cantidad de elementos. Esto permite una extraordinaria flexibilidad, pero puede ocasionar serios problemas si no se tiene cuidado en el correcto manejo de las vriables y los resultados que arroja.Ejemplo:

$a = 123; $b = 456; print $a + $b; # imprime 579 print $a . $b; # imprime 123456 Como vemos la primera operacin corresponde a una operacin entre enteros, mientras que la segunda es la concatenacin de Strings. Los tipos de las variables dependern del contexto en el cual estn siendo instanciadas. Paso de parmetrosPerl siempre pasa los parmetros por valor. Si se desea pasar una referencia, como en C, debe primero crearse una variable escalar con esa referencia. Ms an, Perl nunca pasa arreglos o hashes: estas estructuras colapsan a los escalares que las conforman antes de pasarse a una funcin. Las invocaciones y los retornos pueden pasar tantos parmetros como se desee. Las invocaciones aparecen en la variable local @_.

sub max { my $max = shift(@_); foreach $foo (@_) { $max = $foo if $max < $foo; } return $max; } ........... $bestday = max($mon,$tue,$wed,$thu,$fri); EvaluacinPerl hace evaluacin completa (o rpida) de expresiones. Exceptuando el cdigo entre comillas entregado al operador eval, todo el cdigo es compilado de inmediato al inicio del programa, y las expresiones se evalan en cuanto se espera su valor.Si bien es posible crear funciones annimas y pasar referencias a ellas, esto no es ms que un truco del lenguaje y no puede ser considerado evaluacin floja (o lenta).ConcurrenciaDesde la versin 5.005, Perl soporta hebras ("threads''), pero son todava experimentales. Tiene los mecanismos necesarios para manejo multihebras: hebras asncronas, entrega de control a otras hebras, espera de trmino de otra hebra, bloqueos entre variables y funciones, etc. Adems, Perl soporta el mecanismo Unix estndar fork/exec para mltiples procesos.Otras FuncionalidadesSe provee un mecanismo para precompilar Perl a otros lenguajes (C, bytecode) que puede utilizarse para optimizar el tiempo de carga, etc.Se provee un mecanismo de "chequeo de contaminacin'' (taint checking) el cual puede generar programas muy seguros, an para los ms rebuscados inputs. Usado en CGIs, por ejemplo, es mucho mejor que el cdigo C de un programador promedio.

CARACTERSTICASEs fcil de usar, aunque es difcil de aprender. Cuando se ha programado en Perl por varias horas, Perl se va a ir haciendo cada vez ms fcil de implementar. Este lenguaje se desarroll pensando en que el lenguaje fuera prctico (fcil de usar, eficiente, y completo) en lugar de pequeo, elegante y mnimo, adems de que esta enfocado hacia un desarrollador que posee cierta cantidad de conocimientos sobre el lenguaje y no as hacia un estudiante que est aprendiendo.2. Existen muy pocas cosas que no se pueden hacer con este lenguaje, por lo que se le puede considerar como un lenguaje que no tiene fronteras. Con Perl se puede programar cualquier necesidad que se tenga, ya que existen libreras y mdulos para casi cualquier cosa que se requiera, pero hay aplicaciones que requieren mucha rapidez en las cuales es mejor utilizar otros lenguajes que no sean interpretados.3. Es rpido de crear, ya que no posee funciones que, aunque sean bastante interesantes, hagandisminuir la velocidad de desarrollo de una aplicacin del lenguaje.

4. El lenguaje es feo, siendo esta una de las principales razones para su difcil aprendizaje, aunque esto se compensa con el poder de alcance del lenguaje. Es por esto que Larry Wall escogi el camello como el logotipo del lenguaje, ya que aunque es feo, siempre trabaja fuerte an en condiciones complicadas.5. Se puede utilizar en varios entornos, como puede ser Windows 95, OS/2, Linux, entre muchos otros, sin realizar cambios de cdigo, siendo nicamente necesario la introduccin del interprete Perl correspondiente a cada sistema operativo.

6. Tiene caractersticas que soportan una variedad de paradigmas de programacin, como la estructural, funcional y la orientada a objetos. Al mismo tiempo, Perl no obliga a seguir ningn paradigma en particular, ni obliga al programador a elegir alguna de ellas. No obstante, esta caracterstica es solo accesible en la versin 5.0.

7. Tiene incorporado un poderoso sistema de procesamiento de texto y una enorme coleccin de mdulos disponibles.8. Ofrece una ayuda en lnea desde la consola de comandos. Por ejemplo, para obtener ayuda sobre la funcin print, se debe de escribir en una ventana MSDOS: perldoc f print.

9. Se ejecuta desde la lnea de comandos de una ventana del sistema operativo.

10. Es un lenguaje case-sensitive, lo cual hace referencia a la propiedad de un texto para presentarse en maysculas o en minsculas.

En Perl 5, se aadieron caractersticas para soportar estructuras de datos complejas, funciones de primer orden (p. e. clausuras como valores) y un modelo de programacin orientada a objetos. stos incluyen referencias, paquetes y una ejecucin de mtodos basada en clases y la introduccin de variables de mbito lxico, que hizo ms fcil escribir cdigo robusto (junto con el pragma strict). Una caracterstica principal introducida en Perl 5 fue la habilidad de empaquetar cdigo reutilizable como mdulos.

FACILIDAD CON LA INTERACCIN HUMANO-COMPUTADORATradicionalmente, las interfaces grficas en Perl se hacan con Tk, un juego de controles inventado originalmente para Tcl. Hoy en da, el juego de controles GTK+, escrito en C, provee una interfaz que puede manejarse desde Perl. GTK+ se basa en un modelo de contenedores, manejadores y callbacks, y puede usarse para construir interfaces arbitrariamente complejas.Este ltimo ejemplo ilustra superficialmente el uso de la orientacin a objetos de Perl (desde el punto de vista de quien usa una clase) y GTK+.

use Gtk '-init'; my $window = new Gtk::Window; my $button = new Gtk::Button("Quit"); $button->signal_connect("clicked", sub {Gtk->main_quit}); $window->add($button); $window->show_all; Gtk->main; Aqu podemos apreciar como se crea una instancia de la clase Window, luego un botn. Luego se asigna un callback (Gtk->main_quit) a un evento (clicked) del botn y se pone el botn en el interior de la ventana. Finalmente se corre el ciclo principal de GTK+ (el cual esperar hasta que el botn reciba el evento (clicked), y entretanto har las cosas esperadas, como marcar el botn si el puntero del mouse se posa sobre l, etc).

Perl en la webPerl provee herramientas muy sencillas de uso para la generacin de pginas dinmicas va procesamiento de informacin de entrada/salida a travs del Web. Este hecho masific el uso de Perl en la creacin de scripts para el web as como un sinnmero de otras aplicaciones. La utilidad de Perl en el web ha ido aumentando notoriamente con el tiempo. Su afinidad con las aplicaciones necesitadas en internet ha hecho sumer esfuerzos en la creacin de distintos mdulos y bibliotecas orientadas a distintos temas Web.EJEMPLOS DE SENTENCIAS Y RESULTADOSEn primer lugar para ejecutar un programa en PERL podemos hacer dos cosas: Llamar desde la lnea de comandos al interprete PERL, pasando como parmetro el nombre del programa.sun630% perl primer.plLa extensin pl no es necesaria, pero se suele poner. Aadir en la primera lnea del programa lo siguiente :#! /usr/bin/perl Ademas debemos cambiar los permisos del fichero fuente, para poderlo ejecutar. Esto se realiza mediante la instruccin chmod:chmod u+x primer.pl A continuacin de la primera linea escribiramos el guin del programa, y una vez hecho esto simplemente invocaramos el nombre del programa directamente desde la lnea de comandos.sun630% primerl.pl Los caracteres #! sirven para denotar que lo que viene a continuacin hace referencia a un interprete de comandos.Por ejemplo un perl scripts que mostrar por la pantalla el mensaje HOLA MUNDO se hara de la siguiente forma:#! /usr/bin/perlprint "HOLA MUNDO\n";

Como ya habrs podido observar todas las intrucciones de PERL deben deben acabar en ; .Ejemplo$numero = 2; print $numero;Adems las nicas cosas que deben de ser declaradas en PERL son los formatos de salida o reports y las subrrutinas . Todas las variables creadas y no inicializadas tienen como valor por defecto nulo o cero. Los comentarios deben ir precedidos del smbolo #. Ahora veremos de forma prctica el uso de las sentencias de control condicionales e iterativas que suministra el lenguaje PERL para alterar el flujo de un programa.En primer lugar entenderemos como BLOQUE a todo conjunto de sentencias que se encuentren entre dos llaves, por ejemplo lo siguiente sera un bloque:{$numero=2;print $numero;}Los bloques, adems, pueden ser etiquetados anteponiendo a la llave de apertura el nombre de la etiqueta mas dos puntos.En segundo lugar entenderemos como EXPRESION a toda expresin cuya evaluacin resulte ser un valor booleano, es decir, verdadero o falso. Hay que tener en cuenta que en PERL se considera como verdadero todo valor no nulo,luego se pueden presentar como expresiones el resultado de una asignacin,de una bsqueda etc...Una vez hechas estas consideraciones pasamos a ver la sintaxis de los distintos esquemas de control, que como ya hemos dicho antes pueden ser: Esquemas condicionales. Esquemas iterativos.Dentro de los primeros tenemos los siguientes formatos:if (EXPRESION) BLOQUE. Un ejemplo de uso podra ser:print " PENSANDO UN NUMERO ....\n";$numero = rand(100);print> " Introduce un numero del 1 al 100:";$entrada = ;if($entrada == $numero) {print "Has acertado el numero\n";}if($entrada > $numero) {print "El numero introducido es mayor que el pensado.\n";}if($entrada < $numero) {print "El numero introducido es menor que el pensado.\n";}print " EL NUMERO PENSADO ERA:",$numero;

if (EXP) BLOQUE else BLOQUE. Un ejemplo podria ser:print " PENSANDO UN NUMERO ....\n";$numero = print " Introduce un numero del 1 al 100:";$entrada = ;if($entrada == $numero) { print "Has acertado el numero\n"; }else { if($entrada > $numero) { print "El numero introducido es mayor que el pensado.\n"; } else { print "El numero introducido es menor que el pensado.\n"; } } if (EXP) BLOQUE elsif (EXP) BLOQUE .... else BLOQUE. Un ejemplo podria ser:print " PENSANDO UN NUMERO ....\n";$numero = print " Introduce un numero del 1 al 100:";$entrada = ;if($entrada == $numero) { print "Has acertado el numero\n"; }elsif($entrada > $numero) { print "El numero introducido es mayor que el pensado.\n"; }else { print "El numero introducido es menor que el pensado.\n"; }En lugar de if podemos usar unless que tiene el significado contrario.while (EXP) BLOQUE . Mientras se cumpla la condicin EXP se ejecutar todo lo que haya en bloque. Un ejemplo podra ser:print " PENSANDO UN NUMERO ....\n";$numero = rand(100);$entrada = $numero+1;while ($entrada > $numero) { print " Introduce un numero del 1 al 100, menor que el pensado:"; $entrada = ; if($entrada > $numero) { print "El numero introducido es mayor que el pensado.\n"; } }

print " EL NUMERO PENSADO ERA:",$numero;print "\n";En lugar de while podemos usar until, que tiene el efecto contrario a ste. Si adems queremos hacer la primera comparacin despus de la primera iteracin, podemos usar un esquema iterativo do BLOQUE until o do BLOQUE while.for (EXP;EXPRESION;EXP), su uso es exactamente igual que en C; un ejemplo de uso sera:print "IMPRIMIENDO DEL 1 al 100:\n";getc;for($i=1;$i> ruby Desktop/conditionalCodehero.rbHola RicardoRicardo no es igual a RicArDO

En este ejemplo vemos cmo se ejecuta una condicin sencilla y es importante destacar como influye el uso de maysculas y minsculas al comparar cadena de caracteres.A continuacin mostraremos ejemplos de estructuras condicionales utilizando nmeros y booleanos.

#!/usr/bin/ruby

numero = 3

if numero > 5 puts "#{numero} es mayor que 5"elsif numero == 3 puts "#{numero} es igual a 3"else puts "#{numero} es menor que 5 pero no es igual a 3"end

if numero > 3 puts "#{numero} es mayor que 3"end

isVerdadero = false

if (!isVerdadero) and (numero >= 3) puts "la variable es falsa y el nmero es mayor o igual a 3"end

Al ejecutar este Script tenemos como resultado lo siguiente:

$ ruby Desktop/conditionalCodehero.rb3 es igual a 3la variable es falsa y el nmero es mayor o igual a 3

En este ejemplo el uso de ELSIF para extender y hacer mas especifica la condicin en el primer bloque de cdigo y el uso de mltiples condicionales.UNLESSEste tipo de estructuras de control nos sirven para verificar la existencia de una variable, esto es mas fcil demostrarlo con un ejemplo:

#!/usr/bin/ruby

numero = nilisVerdadero = false

puts "El nmero existe" if numeroputs "El nmero no existe" unless numeroputs "La variable es falsa o no existe" unless isVerdadero

numero = 3puts "El nmero ahora si existe" if numero

Al ejecutar el Script obtenemos el siguiente resultado:

$ ruby Desktop/conditionalCodehero.rbEl nmero no existeLa variable es falsa o no existeEl nmero ahora si existe

En este ejemplo se imprimen las lineas slo si la condicin se cumple.CASEEsta estructura al igual que las anteriores simplemente revisan que las condiciones se cumpla para ejecutar una parte del cdigo. Este tipo de estructura es bastante til y elegante cuando se tienen varias opciones de condiciones. La sintaxis de esta estructura es la siguiente.

case expresin[condicin [, condicin ...] [then] code ]...[else code ]end

Para familiarizarnos con la sintaxis y entender mejor esta estructura, mostraremos un ejemplo fcil.

#!/usr/bin/ruby

edad = 5case edadwhen 0 .. 2 puts "Bebe"when 3 .. 6 puts "Niito"when 7 .. 12 puts "Nio"when 13 .. 18 puts "Adolescente"else puts "Adulto"end

numero = 5case numerowhen 0 .. 2 , 4..10 puts "el nmero esta entre 0 y 2 o 4 y 10"when 3 puts "el nmero es 3"else puts "el nmero es negativo o mayor que 10"end

nombre = "CodeHero"case nombrewhen "CodeHero" puts "SI! esto es CodeHero"else puts "No lo es"end

CUADRO COMPARATIVO

LENGUAJELICENCIACREADORDETALLESVENTAJASDESVENTAJASIDESOR-IHC

Perl gpl, licencia artsticaLarry WallMultiparadigma, funcional, imperativa, orientado a objetos, basado en clases, ltima versin 5.21.11.Las principales ventajas de utilizarperlse encuentran justamente en los objetivos que setenan cuando se creo el lenguaje:perles un eficiente, completo y fcil de usar.

Otra de las ventajas deperlest en la cantidad de aplicaciones que se le pueden dar allenguaje en campos como la administracin de sistemas, aplicaciones web, entre otros.

Est disponible para gran cantidad de sistemas operativosLa principal desventaja deperlse encuentra en el tiempo de ejecucin de un programa, ya queun programaperles compilado cada vez que se ejecuta, por lo que puede resultar ms lentoque un programa similar escrito en otro lenguaje. sin embargo, se han implementado tcnicaspara mejorar esta situacin como guardar el compilado del programa en memoria y retrasar lacompilacin hasta que sea necesitada.MultiplataformaLas interfaces grficas en perl se hacan con tk, un juego de controles inventado originalmente para tcl. hoy en da, el juego de controles gtk+, escrito en c, provee una interfaz que puede manejarse desde perl. gtk+ se basa en un modelo de contenedores, manejadores y callbacks, y puede usarse para construir interfaces arbitrariamente complejas.

Ruby

El intrprete y lasbibliotecasestn licenciadas de forma dual (inseparable) bajo las licencias desoftware libreGPLy Licencia pblica Ruby.7A partir de la versin 1.9.3 se opta por una licencia dual bajo las licenciasBSDde dos clusulas y Licencia pblica Ruby.

Yukihiro MatsumotoParadigma: multiparadigma, orientado a objetos

Ultima versin 2.2.2

Extenciones: .rb o .rbw Es un lenguaje sencillo y fcil de leer. Soportado por la mayora de las plataformas web. Se trata de un software libre uopensource. Integra comandos de manejo de bases de datos.

Su uso no est muy extendido.

multiplataforma, las interfaces no son realmente una parte del paradigma de programacin