Tema 3: Explotación de código PDF
Document Details
Uploaded by RapturousTroll
null
Tags
Summary
Este documento presenta una introducción a la explotación de código, incluyendo los conceptos clave sobre el proceso de obtención de código y las características de los lenguajes de programación. Explica las diferencias entre lenguajes compilados e interpretados, incluyendo conceptos como depuración y reutilización de código. El texto proporciona información fundamental para comprender los principios básicos de la programación.
Full Transcript
23/11/24,19:13 Tema 3: Explotación de código Tema 3: Explotación de código PP aspasia...
23/11/24,19:13 Tema 3: Explotación de código Tema 3: Explotación de código PP aspasia LA FORMACIÓN DE TU FUTURO B> aspasia ra Tomaciónoe TR Indice 1. Introducción y contextualización práctica 2. Proceso de obtención de código 3. Características de los lenguajes de programación 4. Lenguajes interpretados, errores y depuradores 5. Reutilización de código htps://www.ciclosonline.fpaspasia.com/mod/hvp/view.php?id=12275 1/8 23/11/24,19:13 Tema 3: Explotación de código aspasia ra Tomaciónoe urO ' 1. Introducción y contextualización práctica El desarrollo software requiere de un conjunto de herramientas imprescindibles para la generación de programas informáticos. Para poder crear soluciones que se adapten mejor a los problemas, es importante conocer todas las posibilidades existentes a la hora de elegir un lenguaje u otro. Una vez que seleccionamos un lenguaje de programación, es necesario escribir la solución de nuestro problema con dicho lenguaje y las posibles dependencias externas que necesitemos utilizar. Para poder probar nuestra solución es necesario generar un código que pueda entender el computador, a través de un proceso de traducción al lenguaje que la máquina pueda entender. E aspasia ra Tomaciónoe urO ' Cuando nuestro código se ejecuta, pueden producirse errores lógicos que solo son detectables durante la ejecución. Como desarrolladores debemos saber cómo solucionarlos. Sin embargo, en programas grandes suele ser más complicado encontrar los errores, que realizar su corrección. Para facilitar la búsqueda de errores en el software, podemos utilizar depuradores. Entorno de desarrollo htps://www.ciclosonline.fpaspasia.com/mod/hvp/view.php?id=12275 2/8 23/11/24,19:13 Tema 3: Explotación de código aspasia ra Tomaciónoe urO ' 2. Proceso de obtención de código La creación de un programa informático requiere de un determinado conjunto de herramientas que permitan decir a la máquina qué realizar. Actualmente, los lenguajes de programación se parecen a lenguaje humano, por ello son considerados lenguajes de alto nivel. Sin embargo, un computador es una máquina con una electrónica que solo entiende impulsos eléctricos dentro de un determinado voltaje. En este contexto cabe preguntarse cómo es posible convertir un programa escrito en lenguaje pseudonatural a impulsos eléctricos. Para que un computador pueda ejecutar un código fuente es necesario que éste sea entendido por la CPU o procesador. Cada procesador es capaz de entender un conjunto determinado de instrucciones en un determinado lenguaje, que recibe el nombre de lenguaje ensamblador o lenguaje máquina. De esta forma el lenguaje ensamblador es el más cercano a la máquina, siendo el nivel más bajo de abstracción en el que se puede crear un software. B> aspasia ra Tomaciónoe TR Como desarrolladores de software en muy pocas ocasiones tendremos que lidiar con este tipo de lenguaje, pues el código que se genera va a depender del procesador en el que se va a ejecutar. Mediante la creación de lenguajes de alto nivel de abstracción, somos capaces de crear programas informáticos independientes del procesador con mayor facilidad. Sin embargo, un procesador solo es capaz de entender lenguaje ensamblador, por ello es necesario crear herramientas que permitan traducir lenguajes de alto nivel a lenguaje ensamblador. htps://www.ciclosonline.fpaspasia.com/mod/hvp/view.php?id=12275 3/8 23/11/24,19:13 Tema 3: Explotación de código aspasia prrod A * 3. Características de los lenguajes de programación Los lenguajes de programación de alto nivel se parecen a un inglés con ciertas particularidades. Independientemente del tipo de lenguaje de programación, para poder crear un programa informático es necesario disponer de las herramientas necesarias que permita escribir el código fuente del programa. A Á Normalmente, se utilizan herramientas muy potentes, pero podría ser suficiente N con editores de texto plano. Además, es necesario que existan herramientas que permitan realizar la traducción del lenguaje a un lenguaje ensamblador. En este grupo herramientas tendríamos que incluir los compiladores, los intérpretes, los enlazadores, etc. E aspasia ra Tomaciónoe urO * Además de las herramientas de desarrollo, es necesario conocer ciertas características de cada uno de los lenguajes de programación, pues es lo que diferencia un lenguaje de otro. Desde el punto de vista del programador, un lenguaje de programación está formado por un léxico, la sintaxis y unas reglas semánticas: * El léxico nos indica qué caracteres puede reconocer el lenguaje de programación. * Lasintaxis nos indica cuál es el orden correcto en el que deben aparecer los determinados elementos del lenguaje. * Lasreglas semánticas nos dicen qué operaciones desde el punto de vista lógico se permiten en el lenguaje. - 7. htps://www.ciclosonline.fpaspasia.com/mod/hvp/view.php?id=12275 4/8 23/11/24,19:13 Tema 3: Explotación de código aspasia ' Lenguajes compilados Los lenguajes compilados son aquellos que requieren de un compilador para poder generar el código ensamblador. Un compilador es una herramienta que permite traducir de un lenguaje de alto nivel a un lenguaje que pueda comprender la máquina. Este tipo de lenguajes diferencian la etapa de compilación de la etapa de ejecución. Como podemos deducir, al ahorrarnos la etapa de compilación continuamente tendremos un mejor rendimiento. Para poder realizar la compilación y obtener un programa ejecutable, es necesario disponer también de un enlazador o linker. Esta herramienta es la que permitirá resolver las dependencias que tengamos en nuestro desarrollo, por ejemplo, con la resolución de dependencias con componentes externos. D aspasia 4. Lenguajes interpretados, errores y depuradores a. Lenguajes interpretados Los lenguajes interpretados son aquellos que no diferencian entre la fase de compilación y la fase de ejecución. Este tipo de lenguajes requieren que cada vez que se vaya a ejecutar el programa, se realice una compilación previa. Suelen estar muy vinculados con campos como la inteligencia artificial en los que se requiere un tipo de programación diferente. Sin embargo, su utilización no es exclusiva a este campo, pues existen lenguajes de propósito general que pueden ser interpretados en alguna de sus fases, por ejemplo, Java o.NET. Java es un lenguaje que mezcla la compilación con la interpretación. La compilación se realiza desde un lenguaje de alto nivel a un lenguaje ensamblador, sin embargo, Java realiza una traducción a un lenguaje intermedio que recibe el nombre de bytecode. htps://www.ciclosonline.fpaspasia.com/mod/hvp/view.php?id=12275 5/8 23/11/24,19:13 Tema 3: Explotación de código aspasia ra Tomaciónoe urO ' b. Errores y depuradores Una vez que hemos escrito la solución a nuestro problema es necesario generar un ejecutable para poder realizar las pruebas necesarias. Muchas veces los desarrolladores se dan por satisfechos cuando el programa compila, es decir, se ha generado un ejecutable, sin embargo, en este punto E) solo hemos probado que sintácticamente el programa es capaz de compilar, es decir, tener su traducción al código ensamblador. E’ Como podemos deducir, que un programa compile no quiere decir que su funcionamiento sea el correcto, pues puede haber fallos lógicos que solo aparecerán cuando el programa esté en ejecución. Por este motivo, es necesario realizar una etapa de pruebas y depuración. E aspasia raromuacónoe rrO “ Los depuradores son herramientas que nos permiten ver el contenido de las variables y el flujo de ejecución del programa en tiempo real. Además, los depuradores nos permiten parar el flujo de ejecución del programa en cualquier momento pudiendo ir hacia delante con más o menos rapidez. Para poder utilizar el depurador de un programa que hayamos creado es necesario disponer de las herramientas de desarrollo que estimemos oportunas. Los depuradores son, por tanto, herramientas que nos permiten solventar errores lógicos durante la ejecución de un programa. z Management htps://www.ciclosonline.fpaspasia.com/mod/hvp/view.php?id=12275 6/8 23/11/24,19:13 Tema 3: Explotación de código aspasia ra Tomaciónoe urO * 5. Reutilización de código Un buen desarrollo software se centra en crear código estructurado e independiente de un contexto determinado. Si somos capaces de crear componentes que no dependan de un problema determinado, será posible poder reutilizar ese componente o ese código en cualquier contexto en el futuro. Existen diferentes formas de garantizar la reutilización de software, por ejemplo: mediante funciones y/o procedimientos, con la creación de componentes, etc. Ó 7 7O Deployment E aspasia ra Tomaciónoe urO * La reutilización del código es un campo que estudia la ingeniería del software, teniendo como objetivo ahorrar tiempo y recursos mediante la eliminación de redundancias en el mismo. La idea principal es poder reutilizar partes de un programa que ya han sido escritas en otros contextos para poder agilizar el desarrollo de nuevos programas. Como se puede intuir, la reutilizacion de código puede requerir la creación de componentes reutilizables e independientes que pueden ser de cualquier tipo, por ejemplo, pruebas genéricas, entornos de depuración, etc. Una buena aproximación a la reutilización de código es la creación de librerías que se pueden publicary ser utilizadas por terceras partes. Al tener librerías que realizan funcionalidades muy acotadas, es más sencillo crear pruebas simples que sirvan para detectar errores. Un ejemplo de la utilización de estas librerías es Maven o CocoaPods para el desarrollo principalmente sobre ¡OS. htps://www.ciclosonline.fpaspasia.com/mod/hvp/view.php?id=12275 23/11/24,19:13 Tema 3: Explotación de código Tema 3: Explotación de código PP aspasia LA FORMACIÓN DE TU FUTURO htps://www.ciclosonline.fpaspasia.com/mod/hvp/view.php?id=12275 8/8