Instrumental por ejemplos. Sistemas de herramientas de programación. La esencia de VisualBasic y su breve historia

Incluso con cientos de miles de programas de PC disponibles, los usuarios pueden necesitar algo que los programas existentes no necesitan (o necesitan, pero no). En estos casos, el software de herramientas se utiliza para crear nuevos programas, lo que permite el desarrollo de software de sistema y de aplicación. En consecuencia, desempeña el papel de medio de producción en la programación.

Sistemas de programación- estos son complejos de programas y otras herramientas destinadas al desarrollo y operación de programas en un lenguaje de programación específico para una arquitectura de PC específica (plataforma).

El sistema de programación suele incluir editor de texto programas, traductor programas, bibliotecas rutinas y editores de enlaces, depuradores, sistemas de ayuda y, a veces, varios programas auxiliares.

Lenguaje de programación es un lenguaje artificial con la ayuda del cual se escribe un algoritmo para resolver un problema en una forma comprensible para una PC.

Hay muchos lenguajes de programación, y cada uno puede tener docenas de versiones. Cada programador escribe programas en el lenguaje que le conviene, y no existe un lenguaje de programación que se considere generalmente aceptado.

Pero todos los lenguajes de programación tienen una cosa en común. Son comprensibles para los programadores, pero incomprensibles para el procesador, ya que el procesador solo puede trabajar con números binarios y, por lo tanto, comprende programas escritos solo en codigo de maquina. Por lo tanto, los programas escritos en cualquier lenguaje de programación se "traducen" primero al lenguaje del procesador, es decir, convertido en código máquina. Esta traducción es realizada por programas especiales de traducción. En inglés, "translation" se llama emisión (traducción), por lo que los programas que traducen programas a código de máquina se denominan traductores.

En el escenario transmisiones hay una transformación código fuente programas en código de objeto, que se procesa más editor de enlaces El editor de enlaces es un programa especial que proporciona la construcción de módulo de arranque, apto para la ejecución (Fig. 6.2).

Arroz. 6.2. Esquema del proceso de creación de un módulo de carga del programa.

Existen los siguientes tipos de traductores: intérprete, compilador.

Interprete toma el siguiente operador de idioma del texto del programa, analiza su estructura y lo ejecuta inmediatamente. Luego pasa a siguiente operador. Compilador traduce todo el programa a instrucciones de máquina.

De los lenguajes de programación universales de hoy, los siguientes son los más populares: BASIC (Basic), Pascal (Pascal), C ++ (C ++), Java (Java).

Para cada uno de estos lenguajes de programación, hoy en día existen muchos sistemas de programación producidos por varias empresas y enfocados en varios modelos de PC y sistemas operativos. Los siguientes entornos visuales para el diseño rápido de programas para Windows son los más populares: Microsoft Visual Basic; Borland Delfos; Constructor C++ de Borland Microsoft Visual Studio (Visual Basic.net, C++, C#, J#).

Los sistemas de programación modernos le permiten crear programas que se llaman al ver páginas web en la red electrónica global de Internet.

Una clase especial de sistemas de programación son los sistemas para crear aplicaciones cliente-servidor. Estos sistemas le permiten crear rápidamente sistemas de información para departamentos e incluso grandes empresas. Contienen herramientas para crear una interfaz de usuario, descripciones de procedimientos de procesamiento de datos, preparativos para realizar acciones típicas de procesamiento de datos, etc. Estos sistemas, por regla general, le permiten trabajar con una variedad de DBMS: Oracle, Sybase, Microsoft SQL Server, etc. Entre los sistemas más populares de este tipo se encuentran PowerBuilder de Sybase, Delphi de Borland, Visual Basic de Microsoft. Por supuesto, las herramientas para crear aplicaciones cliente-servidor también se incluyen en el SGBD cliente-servidor (Oracle, Sybase, etc.), pero están enfocadas solo a este SGBD.

resumen

SOFTWARE - un conjunto de programas del sistema de procesamiento de información y documentos de póliza necesarios para el funcionamiento de estos programas (GOST 19781-90). Además, un conjunto de programas, procedimientos y reglas, así como documentación relacionada con el funcionamiento del sistema de procesamiento de datos (ST ISO 2382/1-84).

SOFTWARE INSTRUMENTAL - software destinado a ser utilizado en el diseño, desarrollo y mantenimiento de programas. Por lo general, este término se usa para enfatizar la diferencia entre esta clase de software y el software de aplicación y sistema.

Un COMPILER es un compilador que convierte un programa escrito en un lenguaje fuente en un módulo de objeto.

INTÉRPRETE - un programa (a veces hardware), que analiza los comandos o sentencias del programa y los ejecuta inmediatamente.

SISTEMA OPERATIVO: un conjunto de programas de control y procesamiento que, por un lado, actúan como una interfaz entre los dispositivos del sistema informático y los programas de aplicación y, por otro lado, están diseñados para controlar dispositivos, administrar procesos informáticos, distribuir eficazmente los recursos informáticos entre procesos de cómputo y organizar computación confiable.

PROGRAMA APLICADO: un programa diseñado para realizar ciertas tareas del usuario y está diseñado para la interacción directa con el usuario.

VISUALBASIC es una herramienta de desarrollo de software desarrollada por Microsoft e incluye un lenguaje de programación y un entorno de desarrollo.

VISUALBASICFORAPPLICATION: una implementación ligeramente simplificada del lenguaje de programación Visual Basic integrado en la línea de productos oficina de microsoft(incluidas las versiones de Mac OS), así como muchos otros paquetes de software como AutoCAD, SolidWorks, CorelDRAW, WordPerfect y ESRI ArcGIS.

El objeto del trabajo es estudiar los tipos y funciones del software, en particular, instrumental.

Clasificación de software:

Tipos de software de herramientas:

1) Editores de texto

4) compiladores

5) Intérpretes

6) Enlazadores

8) Ensambladores

9) Depuradores

10) Perfiladores

11) Generadores de Documentos

Para crear un programa en el lenguaje de programación seleccionado, debe tener los siguientes componentes:

2. Compilador o intérprete. El texto fuente se traduce a un código objeto intermedio utilizando un programa compilador.

El resultado del trabajo: Se considera el software, sus funciones y tipos, en particular el software instrumental, su esencia, tareas. El tercer capítulo analiza Microsoft Visual Basic como una herramienta de desarrollo de software y su dialecto: Microsoft Visual Basic para aplicaciones. EN Papel a plazo Se implementó un algoritmo para la solución de un problema financiero y económico utilizando el lenguaje de programación Pascal.

Introducción

EN mundo moderno más de una persona que ha probado los beneficios de la civilización no puede imaginar su vida sin el uso de tecnologia computacional. Su uso se da en cualquier esfera de la actividad humana: producción, comercio, educación, entretenimiento y comunicación de las personas, sus actividades científicas y culturales. Todo esto se debe a la posibilidad de seleccionar equipos informáticos para resolver cualquier tarea, incluso la más compleja.

Sin embargo, la universalidad y especialización de la tecnología informática está garantizada por el uso, sobre la base de casi cualquier computadora, de un conjunto diferente de software que brinda soluciones a cualquier tarea.

Todos vemos la gran variedad de programas informáticos y el ritmo vertiginoso de su crecimiento y mejora, y solo una pequeña parte de nosotros representa el lado invisible en su diseño, desarrollo y creación. Sin embargo, esta área de la tecnología informática es, en nuestra opinión, la más importante, ya que de su desarrollo dependerá el futuro de la tecnología informática.

Y dado que el desarrollo de cualquier programa de computadora se lleva a cabo utilizando el software Tool, en nuestro trabajo me gustaría detenerme en detalle, destacándolo de todo el software y revelando su esencia y características.

Para mayor claridad, consideraremos el software de herramientas (objeto de estudio) utilizando el ejemplo del paquete de software VisualBasicforApplication (objeto de estudio) utilizado para la programación en el entorno de Microsoft Office, la suite ofimática más común y popular.

1 software

1.1 Concepto y esencia del software

El software (SW) es una parte integral sistema informático. Es una continuación lógica de los medios técnicos de cualquier computadora. El alcance de una computadora en particular está determinado por el software creado para ella. La computadora en sí no tiene conocimiento en ningún área de aplicación. Todo este conocimiento se concentra en programas que se ejecutan en computadoras que tienen un conjunto de funcionalidades específicas y están diseñadas para realizar funciones específicas, en la mayoría de los casos, altamente especializadas, como crear y procesar imágenes gráficas o archivos de sonido.

Actualmente, el software consiste en cientos de miles de programas que están diseñados para procesar una amplia variedad de información para una variedad de propósitos.

Software (SW) también incluye toda el área de actividad en el diseño y desarrollo de software:

1) tecnología de diseño de software (por ejemplo, diseño de arriba hacia abajo, diseño estructural y orientado a objetos);

2) métodos para probar programas;

3) métodos para probar la corrección de los programas;

4) análisis de la calidad de los programas;

5) documentación de programas;

6) desarrollo y uso de herramientas de software que faciliten el proceso de diseño de software, y mucho más.

Hay muchas definiciones diferentes de software. En general, el software es un conjunto de programas de sistemas de procesamiento de información y documentos de programas necesarios para el funcionamiento de estos programas (GOST 19781-90). Además, un conjunto de programas, procedimientos y reglas, así como documentación relacionada con el funcionamiento del sistema de procesamiento de datos (ST ISO 2382/1-84).

El software es uno de los tipos de soporte del sistema informático, junto con el soporte técnico (hardware), matemático, informativo, lingüístico, organizativo y metodológico.

La jerga informática a menudo usa la palabra software de la palabra inglesa software, que se usó por primera vez en este sentido en un artículo del American Mathematical Monthly del matemático John W. Tukey de la Universidad de Princeton en 1958.

Otras definiciones:

1) SOFTWARE es un conjunto de programas que permiten el procesamiento automatizado de información en una computadora.

2) SOFTWARE (software de una computadora electrónica), un conjunto de programas de un sistema de procesamiento de datos y documentos de programa necesarios para la implementación de programas en una computadora electrónica.

3) SOFTWARE: un conjunto de programas para administrar el proceso de operación de la computadora, automatización de programación.

4) SOFTWARE - un conjunto de programas informáticos que proporcionan procesamiento o transmisión de datos.

Todas las definiciones son similares y reflejan la esencia del software: la organización de la interacción de la parte (técnica) del hardware, en forma de varios nodos integrados y dispositivos periféricos, su control y coordinación de la interacción general del sistema informático. entre sí y con el usuario.

1.2 Características del programa

Los conceptos anteriores de software determinan las funciones realizadas por el software en el proceso de funcionamiento de los equipos informáticos. La lista de estas funciones es muy diversa, pero condicionalmente se pueden dividir en los siguientes cinco tipos:

1. Hardware-mecánica. Hacen interfaz con varios componentes de la computadora, aseguran la transmisión de una señal de hardware de un componente a otro.

2. Lógica de máquina. Un conjunto de pulsos electromagnéticos de hardware se procesa e interpreta en un código de programa lógicamente consciente con una determinada estructura y propiedades.

3. Información y mando. Verifican el cumplimiento del código del programa con los principios del sistema y crean estructura lógica información y ponerla en práctica.

4. Interfaz. Proporcionan procesamiento e interpretación del código del programa en un formato de visualización accesible para el usuario. Crea un ambiente propicio para la interacción "Ordenador-Hombre, Hombre-Ordenador".

5. Aplicado. Realiza acciones matemáticas, lógicas, físicas y otras con un conjunto de datos disponibles, es decir, procesa la información disponible para resolver determinados problemas.

Esta lista está lejos de ser exhaustiva, lo que indica la diversidad y ambigüedad de las funciones realizadas por el software.

1.3 Tipos de software

Dependiendo de las funciones que proporcione un determinado componente de la computadora, se hace necesario crear su propio software especializado para el mismo, motivo fundamental para la creación de software de varios tipos que se muestran en la (Fig. 1):

a) Programas de aplicación que proporcionan directamente la realización del trabajo requerido por los usuarios;

b) programas del sistema, diseñado para controlar el funcionamiento del sistema informático, realiza varias funciones auxiliares, por ejemplo:

1) gestión de recursos informáticos;

2) creación de copias de la información utilizada;

3) verificar la operatividad de los dispositivos informáticos;

4) emisión de información de referencia sobre la computadora, etc.;

c) Sistemas de software herramienta que facilitan el proceso de creación de nuevos programas para la computadora.

El software del sistema asegura el funcionamiento y mantenimiento de la computadora, además de automatizar el proceso de creación de nuevos programas. El software del sistema incluye: sistemas operativos y su interfaz de usuario; instrumental software; sistemas de mantenimiento.

El sistema operativo es una parte obligatoria de un software especial que garantiza un funcionamiento eficiente computadora personal en varios modos, organizando la ejecución de programas y la interacción del usuario y dispositivos externos con computadora

La interfaz de usuario (programas de servicio) son complementos de software del sistema operativo (shells y entornos) diseñados para simplificar la comunicación del usuario con el sistema operativo.

Los programas que proporcionan una interfaz conservan la forma de comunicación (diálogo) entre el usuario y el sistema operativo, pero cambian el idioma de comunicación (normalmente el idioma de los comandos se convierte en el idioma del menú). Los sistemas de servicio se pueden dividir condicionalmente en sistemas de interfaz, shells sistemas operativos y utilidades.

Los sistemas de interfaz son potentes sistemas de servicio, la mayoría de las veces de tipo gráfico, que mejoran no solo la interfaz de usuario, sino también la interfaz del programa de los sistemas operativos, en particular, al implementar algunos procedimientos adicionales para dividir recursos adicionales.

Los shells de los sistemas operativos proporcionan al usuario una interfaz cualitativamente nueva en comparación con la implementada por el sistema operativo y hacen que el conocimiento de este último sea opcional.

Las utilidades automatizan la ejecución de ciertos procedimientos típicos y de uso frecuente, cuya implementación requeriría que el usuario desarrolle programas especiales. Muchas utilidades tienen una interfaz interactiva desarrollada con el usuario y están cerca en términos de comunicación con los shells.

Herramientas de software (sistemas de programación): una parte obligatoria del software, con cuyo uso se crean los programas. El software de herramientas incluye herramientas para escribir programas (editores de texto); herramientas para convertir programas en una forma adecuada para su ejecución en una computadora (ensambladores, compiladores, intérpretes, cargadores y enlazadores), herramientas para monitorear y depurar programas.

Los editores de texto le permiten editar, formar y combinar convenientemente los textos de los programas, y algunos, y controlar la sintaxis de los programas creados.

Un programa escrito en lenguaje algorítmico debe convertirse en un módulo objeto escrito en lenguaje máquina (en códigos binarios). Tal transformación es realizada por traductores (ensamblador, del lenguaje Assembler y compiladores, de lenguajes de alto nivel). Para algunos lenguajes algorítmicos, se utilizan intérpretes que no crean un módulo de objeto, sino que en cada ejecución siguiente del programa, traducen cada una de sus líneas o declaraciones individuales a lenguaje de máquina. El módulo de objeto es procesado por el cargador - enlazador, que lo convierte en un programa de máquina ejecutable.

Las herramientas de depuración le permiten rastrear programas (ejecución paso a paso con la emisión de información sobre los resultados de la ejecución), verificar la sintaxis del programa y los resultados intermedios en los puntos de interrupción y modificar los valores de las variables en estos puntos.

técnico y servicio postventa son herramientas de software para monitorear, diagnosticar y restaurar la salud de una computadora, discos, etc.

El software de aplicación proporciona una solución a los problemas de los usuarios. El concepto clave aquí es el paquete de software de aplicación.

Un paquete de software de aplicación es un conjunto de programas para resolver una variedad de problemas sobre un tema o tema específico. Existen los siguientes tipos de paquetes de aplicaciones:

1) propósito general- centrado en la automatización de una amplia gama de tareas del usuario (procesadores de texto, editores de hojas de cálculo, sistemas de gestión de bases de datos, procesadores gráficos, sistemas de publicación, sistemas de automatización de diseño, etc.);

2) orientado a métodos: la implementación de varios métodos económicos y matemáticos para resolver problemas (programación matemática, planificación y gestión de redes, teoría de colas, estadísticas matemáticas, etc.);

3) orientado a problemas: destinado a resolver una tarea específica (problema) en un área temática específica (paquetes bancarios, paquetes contables, gestión financiera, sistemas de referencia legal, etc.).

El software de aplicación incluye herramientas de software de servicio que sirven para organizar un entorno de trabajo conveniente para el usuario, así como para realizar funciones auxiliares (gestores de información, traductores, etc.).

Al construir una clasificación de software, se debe tener en cuenta el hecho de que el rápido desarrollo de la tecnología informática y la expansión del alcance de las aplicaciones informáticas han acelerado considerablemente el proceso de evolución del software. Si antes era fácil enumerar las principales categorías de software: sistemas operativos, traductores, paquetes de software de aplicación, ahora la situación ha cambiado radicalmente. El desarrollo de software ha ido tanto en profundidad (nuevos enfoques para la construcción de sistemas operativos, lenguajes de programación, etc.) como en amplitud (los programas de aplicación han dejado de aplicarse y han adquirido valor independiente). El equilibrio entre los productos de software requeridos y los disponibles en el mercado está cambiando rápidamente. Incluso los productos de software clásicos, como los sistemas operativos, evolucionan constantemente y están dotados de funciones intelectuales, muchas de las cuales antes pertenecían únicamente a las capacidades intelectuales humanas.

2. Software de herramientas

2.1 Esencia y concepto de software instrumental

Software de herramientas (IPO): software destinado a ser utilizado en el diseño, desarrollo y mantenimiento de programas.

Utillaje aplicado en fase de desarrollo. El software de herramientas es un conjunto de programas utilizados para ayudar a los programadores en su trabajo, para ayudar a los gerentes de desarrollo de software en su deseo de controlar el proceso de desarrollo y los productos resultantes. Los representantes más famosos de esta pieza de software son programas de traductores de lenguajes de programación que ayudan a los programadores a escribir instrucciones de máquina. Los programas de la herramienta son traductores de Fortran, Cobol, Jovial, BASIC, APL y Pascal. Facilitan el proceso de creación de nuevos programas de trabajo. Sin embargo, los traductores de idiomas son solo la parte más conocida de los programas de herramientas; hay muchos de ellos.

El uso de computadoras para ayudar a crear nuevos programas está lejos de ser obvio para las personas que no son programadores profesionales. A menudo sucede que los profesionales hablan de software de herramienta (fase de desarrollo) y de sistema (fase de uso) al unísono, asumiendo que los no iniciados en los secretos de su habilidad conocen este papel del software de herramienta. Además de en la fase de uso (para programas de aplicación), el software del sistema también funciona en la fase de desarrollo, pero solo en combinación con el software de la herramienta. El software de herramientas o sistemas de programación son sistemas para automatizar el desarrollo de nuevos programas en un lenguaje de programación.

En el caso más general, para crear un programa en el lenguaje de programación seleccionado (lenguaje de programación del sistema), necesita tener los siguientes componentes:

1. Editor de texto para crear un archivo con el código fuente del programa.

2. Compilador o intérprete. El texto fuente se traduce a un código objeto intermedio utilizando un programa compilador. El texto fuente de un programa grande consta de varios módulos (archivos con textos fuente). Cada módulo se compila en un archivo separado con código objeto, que luego debe combinarse en una sola unidad.

3. Un enlazador o ensamblador que enlaza módulos de objetos y genera una aplicación viable: código ejecutable.

Un código ejecutable es un programa completo que se puede ejecutar en cualquier computadora que tenga el sistema operativo para el cual se creó el programa. Por regla general, el archivo resultante tiene la extensión .EXE o .COM.

Recientemente, los métodos de programación visual (utilizando lenguajes de secuencias de comandos) se han generalizado, centrados en la creación de aplicaciones de Windows. Este proceso está automatizado en entornos de diseño rápido. En este caso, se utilizan componentes visuales listos para usar, que se configuran mediante editores especiales.

Los editores (sistemas de programación que utilizan herramientas visuales) más populares para el diseño visual:

1) Borland Delphi: diseñado para resolver casi cualquier problema de programación de aplicaciones.

2) Borland C++ Builder es una excelente herramienta para desarrollar aplicaciones DOS y Windows.

3) Microsoft Visual Basic es una herramienta popular para crear programas de Windows.

4) Microsoft Visual C ++: esta herramienta le permite desarrollar cualquier aplicación que se ejecute en un entorno de sistema operativo como Microsoft Windows

Así, la esencia del software instrumental es crear cualquier programa ejecutable mediante la conversión de expresiones formalmente lógicas en código máquina ejecutable, así como su control y corrección.

2.2 Tareas y funciones del software de la herramienta

El software de herramientas, como un tipo especial de software, se caracteriza por características generales y particulares.

funciones, como para todo el software en general. Las funciones generales son consideradas por nosotros arriba, y las funciones especializadas inherentes solo este tipo los programas son:

1. Creación del texto del programa desarrollado utilizando palabras de código especialmente establecidas (lenguaje de programación), así como un determinado conjunto de caracteres y su ubicación en el archivo creado: la sintaxis del programa.

2. Traducción de texto programa creado en un código orientado a máquina accesible para el reconocimiento por computadora. En el caso de un volumen significativo del programa creado, se divide en módulos separados y cada uno de los módulos se traduce por separado.

3. Conexión de módulos individuales en un solo código ejecutable, de acuerdo con la estructura necesaria, asegurando la coordinación de la interacción de las partes individuales entre sí.

4. Prueba y control del programa creado, detección y eliminación de errores formales, lógicos y sintácticos, comprobación de códigos prohibidos en los programas, así como evaluación del rendimiento y potencial del programa creado.

2.3 Tipos de software de herramientas

En base a las tareas asignadas al software instrumental, podemos distinguir un gran número de varios tipos de software instrumental:

1) Editores de texto

2) Entornos de Desarrollo Integrado

4) compiladores

5) Intérpretes

6) Enlazadores

7) Analizadores y generadores de analizadores (ver Javacc)

8) Ensambladores

9) Depuradores

10) Perfiladores

11) Generadores de Documentos

12) Herramientas de análisis de cobertura de código

13) Herramientas de Integración Continua

14) Herramientas de prueba automatizadas

15) Sistemas de control de versiones, etc.

Cabe señalar que los shells para crear programas de aplicación también son creados por programas de herramientas y, por lo tanto, pueden denominarse programas de aplicación. Considere brevemente el propósito de algunos programas instrumentales.

Editores de texto.

Editor de texto - programa de computadora, diseñado para procesar archivos de texto, como crear y realizar cambios.

Tipos de editores de texto.

Convencionalmente se distinguen dos tipos de editores: los editores de texto en streaming y los interactivos.

Los editores de texto continuo son programas informáticos que están diseñados para procesar automáticamente datos de texto de entrada recibidos de un archivo de texto de acuerdo con reglas predefinidas por los usuarios. La mayoría de las veces, las reglas son expresiones regulares, en un dialecto específico de este editor de texto en particular. Un ejemplo de dicho editor de texto es el editor Sed.

Los editores de texto interactivos son una familia de programas informáticos diseñados para realizar cambios en Archivo de texto interactivamente. Dichos programas le permiten mostrar el estado actual de los datos de texto en un archivo y realizar varias acciones en ellos.

A menudo, los editores de texto interactivos contienen una funcionalidad adicional significativa diseñada para automatizar algunas de las acciones de edición o para realizar un cambio en la visualización de los datos de texto, según su semántica. El resaltado de sintaxis es un ejemplo del último tipo de funcionalidad.

Los editores de texto están diseñados para crear y editar documentos de texto. Los más comunes son MS WORD, Lexicon. Funciones principales editores de texto están:

1) trabajar con fragmentos de documentos,

2) insertar objetos creados en otros programas

3) paginación del texto del documento

4) ingresar y editar tablas

5) ingresar y editar fórmulas

6) formato de párrafo

7) creación automática de listas

8) creación automática de una tabla de contenido.

Se conocen decenas de editores de texto. Los más accesibles son NOTEPAD(bloc de notas), WORDPAD, WORD. El trabajo de un editor de texto en particular generalmente está determinado por las funciones, cuyo propósito se refleja en los elementos del menú y en el sistema de ayuda.

Entorno de desarrollo integrado

El entorno de desarrollo integrado (ISD) es un sistema de software utilizado por los programadores para desarrollar software (SW). El entorno de desarrollo suele incluir:

1) editor de texto

2) compilador y/o intérprete

3) herramientas de automatización de montaje

4) depurador.

A veces también contiene herramientas para la integración con sistemas de control de versiones y una variedad de herramientas para simplificar la construcción de una interfaz gráfica de usuario. Muchos entornos de desarrollo modernos también incluyen un navegador de clases, un inspector de objetos y un diagrama de jerarquía de clases para usar en el desarrollo de software orientado a objetos. Aunque existen entornos de desarrollo diseñados para varios lenguajes de programación - como Eclipse, NetBeans, Embarcadero Estudio RAD, Qt Creator o Microsoft Visual Studio, por lo general, el entorno de desarrollo está diseñado para un lenguaje de programación específico, como Visual Basic, Delphi, Dev-C++.

Un caso especial de ISR son los entornos de desarrollo visual, que incluyen la capacidad de editar visualmente la interfaz del programa.

SDK.

SDK (del inglés SoftwareDevelopmentKit) o ​​"devkit" es un kit de desarrollo que permite a los especialistas en software crear aplicaciones para un paquete de software específico, herramientas de desarrollo de software, plataforma de hardware, sistema informático, consolas de videojuegos, sistemas operativos y otras plataformas.

El programador suele obtener el SDK directamente del desarrollador de la tecnología o el sistema de destino. A menudo, el SDK se distribuye a través de Internet. Muchos SDK se distribuyen de forma gratuita para animar a los desarrolladores a utilizar una determinada tecnología o plataforma.

Los proveedores de SDK a veces reemplazan el término Software en el Kit de desarrollo de software con una palabra más precisa. Por ejemplo, Microsoft y Apple proporcionan kits de desarrollo de controladores (DDK) para desarrollar controladores de dispositivos, mientras que PalmSource llama a su kit de herramientas de desarrollo "PalmOS Development Kit (PDK)".

Ejemplos de SDK :

5) Kit de desarrollo de Java

6) SDK de dispositivos Opera

compiladores.

compilador -

1) Un programa o herramienta de hardware que realiza la compilación.

2) El programa de máquina utilizado para la compilación.

3) Un traductor que convierte un programa escrito en el idioma fuente en un módulo objeto.

4) Un programa que traduce el texto de un programa en un lenguaje de alto nivel a un programa equivalente en lenguaje máquina.

5) Un programa diseñado para traducir un lenguaje de alto nivel a código absoluto o, a veces, a lenguaje ensamblador. Información de entrada para el compilador ( fuente) es una descripción del algoritmo o un programa en un lenguaje específico de dominio, y la salida del compilador es una descripción equivalente del algoritmo en un lenguaje orientado a máquina (código objeto).

Compilacion -

1) Traducción del programa a un lenguaje cercano a la máquina.

2) Traducción de un programa escrito en el idioma fuente a un módulo objeto. Implementado por el compilador.

Compilar: traducir un programa de máquina de un lenguaje específico de dominio a un lenguaje orientado a máquina.

Tipos de compiladores :

1) Vectorización. Traduce el código fuente al código de máquina de las computadoras equipadas con un procesador vectorial.

2) flexibles. Compilado de forma modular, controlado por tablas y programado en un lenguaje de alto nivel o implementado con un compilador compilador.

3) Diálogo.

4) incrementales. Retraduce fragmentos y extensiones del programa sin volver a compilar todo el programa.

5) Interpretativa (paso a paso). Realiza secuencialmente una compilación independiente de cada declaración individual (comando) del programa fuente.

6) Compilador de compiladores. Un traductor que toma una descripción formal de un lenguaje de programación y genera un compilador para ese lenguaje.

7) Depurar. Elimina ciertos tipos de errores de sintaxis.

8) Residente. Reside permanentemente en la memoria principal y está disponible para reutilizar muchas tareas.

9) Autocompilado. Escrito en el mismo idioma desde el que se realiza la emisión.

10) Universales. Basado en una descripción formal de la sintaxis y la semántica del lenguaje de entrada. Los componentes de dicho compilador son: el kernel, los cargadores sintácticos y semánticos.

Tipos de compilación :

1) Lote. Compilación de múltiples módulos fuente en un elemento de trabajo.

2) Línea por línea.

3) Condicional. Recopilación en la que el texto traducido depende de las condiciones especificadas en el programa fuente. Entonces, dependiendo del valor de alguna constante, puede activar o desactivar la traducción de una parte del texto del programa.

Estructura del compilador.

El proceso de compilación consta de los siguientes pasos:

1) Análisis léxico. En esta etapa, la secuencia de caracteres del archivo fuente se convierte en una secuencia de tokens.

2) Análisis sintáctico (gramatical). La secuencia de tokens se convierte en un árbol de análisis.

3) Análisis semántico. El árbol de análisis se procesa para establecer su semántica (significado), por ejemplo, vinculando identificadores a sus declaraciones, tipos, comprobaciones de compatibilidad, determinación de tipos de expresión, etc. El resultado suele denominarse "representación/código intermedio" y puede aumentarse con un árbol de análisis, un nuevo árbol, un conjunto abstracto de comandos o cualquier otra cosa conveniente para un procesamiento posterior.

4) Optimización. Las construcciones redundantes se eliminan y el código se simplifica manteniendo su significado. La optimización puede estar en diferentes niveles y etapas, por ejemplo, sobre el código intermedio o sobre el código de máquina final.

5) Generación de código. A partir de la representación intermedia se genera código en el idioma de destino.

En implementaciones específicas de compiladores, estas etapas se pueden separar o combinar de una forma u otra.

Difusión y enlace.

Una característica histórica importante del compilador, reflejada en su nombre (eng. compile - juntar, componer), era que también podía realizar enlaces (es decir, contenía dos partes: un traductor y un enlazador). Esto se debe al hecho de que la compilación separada y la vinculación como una etapa separada del ensamblaje surgieron mucho más tarde que la llegada de los compiladores. En este sentido, en lugar del término "compilador", a veces se usa el término "traductor" como su sinónimo: ya sea en la literatura antigua, o cuando se quiere enfatizar su capacidad para traducir un programa a código de máquina (y viceversa, usan el término "compilador" para enfatizar la capacidad de ensamblar a partir de muchos archivos uno).

Intérpretes.

Intérprete (lenguaje de programación) -

1) Un programa o herramienta técnica que realiza la interpretación.

2) El tipo de traductor que realiza el procesamiento y la ejecución operador por operador (comando por comando) del programa fuente o consulta (a diferencia de un compilador que traduce el programa completo sin ejecutarlo).

3) Un programa (a veces hardware) que analiza comandos o sentencias de programas y los ejecuta inmediatamente.

4) Un procesador de lenguaje que analiza el programa fuente línea por línea y simultáneamente realiza las acciones prescritas, y no forma un programa compilado en lenguaje máquina que se ejecuta posteriormente.

Tipos de intérprete.

Un intérprete simple analiza e inmediatamente ejecuta (la interpretación misma) el programa comando por comando (o línea por línea), a medida que su código fuente llega a la entrada del intérprete. La ventaja de este enfoque es la respuesta instantánea. La desventaja es que dicho intérprete detecta errores en el texto del programa solo cuando intenta ejecutar un comando (o línea) con un error.

Un intérprete de tipo compilador es un sistema de un compilador que traduce el código fuente del programa en una representación intermedia, por ejemplo, código de bytes o código p, y el intérprete mismo, que ejecuta el código intermedio resultante (la llamada máquina virtual). La ventaja de tales sistemas es la mayor velocidad de ejecución del programa (debido a la eliminación del análisis del código fuente en un paso único y separado, y la minimización de este análisis en el intérprete). Desventajas: mayor requisito de recursos y el requisito de la corrección del código fuente. Se usa en lenguajes como Java, PHP, Python, Perl (se usa bytecode), REXX (se guarda el resultado del análisis del código fuente), así como en varios DBMS (se usa p-code).

Si el intérprete de tipo compilador se divide en componentes, se obtiene un compilador de lenguaje y un intérprete simple con análisis de código fuente minimizado. Además, el código fuente de dicho intérprete no tiene que tener formato de texto o ser un código de bytes que solo este intérprete entiende, podría ser el código de máquina de alguna plataforma de hardware existente. Por ejemplo, maquinas virtuales como QEMU, Bochs, VMware incluyen intérpretes de código de máquina para procesadores de la familia x86.

Algunos intérpretes (por ejemplo, para Lisp, Scheme, Python, BASIC y otros) pueden funcionar en modo de diálogo o en el llamado bucle de lectura-computación-impresión (read-eval-printloop, REPL). En este modo, el intérprete lee una construcción de lenguaje completa (por ejemplo, s-expression en Lisp), la ejecuta, imprime los resultados y luego espera a que el usuario ingrese la siguiente construcción.

El lenguaje Forth es único, que puede funcionar tanto en los modos de interpretación como de compilación de datos de entrada, lo que le permite cambiar entre estos modos en cualquier momento, tanto durante la traducción del código fuente como mientras se ejecutan los programas.

También se debe tener en cuenta que los modos de interpretación se pueden encontrar no solo en el software, sino también en hardware. Por lo tanto, muchos microprocesadores interpretan el código de máquina utilizando microprogramas integrados, y los procesadores de la familia x86, comenzando con Pentium (por ejemplo, en la arquitectura Intel P6), durante la ejecución del código de máquina, lo pretraducen a un formato interno (a una secuencia de microoperaciones).

El algoritmo del intérprete simple :

2. analizar la instrucción y determinar las acciones apropiadas;

3. tomar las medidas apropiadas;

4. si no se alcanza la condición de terminación del programa, lea la siguiente instrucción y vaya al punto 2.

Ventajas y desventajas de los intérpretes.

1) Mayor portabilidad de los programas interpretados: el programa se ejecutará en cualquier plataforma que tenga un intérprete adecuado.

2) Como regla general, medios más avanzados y visuales para diagnosticar errores en los códigos fuente.

3) Simplificación de la depuración de los códigos fuente del programa.

4) Tamaños de código más pequeños en comparación con el código de máquina obtenido después de compiladores convencionales.

1) Un programa interpretado no puede ejecutarse por separado sin un programa intérprete. El intérprete en sí puede ser muy compacto.

2) Un programa interpretado se ejecuta más lentamente porque el análisis intermedio del código fuente y la programación de su ejecución requieren tiempo adicional en comparación con la ejecución directa del código de máquina en el que se podría compilar el código fuente.

3) Prácticamente no hay optimización de código, lo que conlleva pérdidas adicionales en la velocidad de los programas interpretados.

enlazador.

Un enlazador (también un enlazador, enlazador) es un programa que realiza enlaces: toma uno o más módulos de objetos como entrada y ensambla un módulo ejecutable a partir de ellos.

Para enlazar módulos, el enlazador usa las tablas de nombres creadas por el compilador en cada uno de los módulos objeto. Dichos nombres pueden ser de dos tipos:

1) Nombres definidos o exportados: funciones y variables definidas en este módulo y proporcionadas para su uso por otros módulos.

2) Nombres no definidos o importados: funciones y variables a las que se refiere el módulo, pero no las define dentro de sí mismo.

El trabajo del enlazador es resolver las referencias a nombres no definidos en cada módulo. Para cada nombre importado, su definición se encuentra en otros módulos, la mención del nombre se reemplaza por su dirección.

El enlazador normalmente no realiza la verificación de tipo o conteo de los parámetros de procedimiento y función. Si es necesario combinar módulos de objetos de programas escritos en lenguajes fuertemente tipados, una utilidad adicional debe realizar las comprobaciones necesarias antes de iniciar el enlazador.

ensamblador.

Ensamblador (del inglés ensamblador - ensamblador): un programa de computadora, un compilador del código fuente de un programa escrito en lenguaje ensamblador en un programa en lenguaje de máquina.

Al igual que el propio lenguaje (ensamblador), los ensambladores tienden a ser específicos de una arquitectura, un sistema operativo y una variante de sintaxis particulares del lenguaje. Al mismo tiempo, existen ensambladores multiplataforma o completamente universales (más precisamente, universales limitados, porque es imposible escribir programas independientes del hardware en un lenguaje de bajo nivel) que pueden funcionar en diferentes plataformas y sistemas operativos. Entre estos últimos, también se puede destacar un grupo de ensambladores cruzados capaces de ensamblar código máquina y módulos ejecutables (archivos) para otras arquitecturas y sistemas operativos.

El ensamblaje puede no ser el primer o último paso en el camino para obtener un módulo de programa ejecutable. Por lo tanto, muchos compiladores de lenguajes de programación de alto nivel producen el resultado en forma de un programa en lenguaje ensamblador, que luego es procesado por el ensamblador. Además, el resultado del ensamblaje puede no ser un ejecutable, sino un módulo de objeto que contiene partes separadas y no adjuntas del código de la máquina y los datos del programa, del cual (o de varios módulos de objeto) en el futuro con la ayuda de un programa de vinculación (" enlazador") archivo ejecutable.

Un depurador o depurador es un módulo de entorno de desarrollo o una aplicación separada diseñada para encontrar errores en un programa. El depurador le permite recorrer el seguimiento, monitorear, establecer o cambiar los valores de las variables durante la ejecución del programa, establecer y eliminar puntos de interrupción o condiciones de interrupción, etc.

Lista de depuradores.

1) AQtime es un depurador comercial para aplicaciones creadas para .NET Framework versión 1.0, 1.1, 2.0, 3.0, 3.5 (incluidas las aplicaciones ASP.NET), así como para aplicaciones de Windows de 32 y 64 bits.

2) DTrace es un marco de seguimiento dinámico para Solaris, OpenSolaris, FreeBSD, Mac OS X y QNX.

3) Cerca Eléctrica - depurador de memoria.

4) GNU Debugger (GDB) es un depurador de programas del proyecto GNU.

5) IDA es un poderoso desensamblador y depurador de bajo nivel para sistemas operativos Windows y Linux.

6) Microsoft Visual Studio es un entorno de desarrollo de software que incluye herramientas de depuración de Microsoft Corporation.

7) OllyDbg es un depurador gratuito de bajo nivel para sistemas operativos de la familia Windows.

8) SoftICE es un depurador de bajo nivel para sistemas operativos de la familia Windows.

9) Sun Studio es un entorno de desarrollo de software que incluye el depurador dbx para los sistemas operativos Solaris y Linux de Sun Microsystems Corporation.

10) Dra. Watson es un depurador estándar de Windows que le permite crear volcados de memoria.

11) TotalView es uno de los depuradores comerciales para UNIX.

12) WinDbg es un depurador gratuito de Microsoft Corporation.

Generador de documentación: un programa o paquete de software que le permite obtener documentación destinada a programadores (documentación API) y/o para usuarios finales del sistema, de acuerdo con un código fuente especialmente comentado y, en algunos casos, módulos ejecutables (obtenidos del salida del compilador).

Normalmente, el generador analiza el código fuente del programa, destacando las construcciones sintácticas correspondientes a los objetos significativos del programa (tipos, clases y sus miembros/propiedades/métodos, procedimientos/funciones, etc.). El análisis también utiliza metainformación sobre los objetos del programa, presentados en forma de comentarios de documentación. En base a toda la información recopilada, se forma la documentación preparada, generalmente en uno de los formatos generalmente aceptados: HTML, HTMLHelp, PDF, RTF y otros.

Documentación de comentarios.

Un comentario de documento es un comentario con formato especial en un objeto de programa para que lo use un generador de documentación específico. La sintaxis de las construcciones utilizadas en los comentarios de la documentación depende del generador de documentación que se utilice.

Los comentarios de la documentación pueden contener información sobre el autor del código, describir el propósito del objeto del programa, el significado de los parámetros de entrada y salida para una función/procedimiento, ejemplos de uso, posibles excepciones, características de implementación.

Los comentarios de documentación generalmente tienen el formato de comentarios de estilo C de varias líneas. En cada caso, el comentario debe ir antes del elemento documentado. El primer carácter de un comentario (y al comienzo de las líneas de comentario) debe ser *. Los bloques están separados por líneas en blanco.

3. Visual Basic para Aplicaciones

sistema operativo software

3.1 La esencia de VisualBasic y su breve historia

Microsoft Visual Basic (VB) es una herramienta de desarrollo de software desarrollada por Microsoft e incluye un lenguaje de programación y un entorno de desarrollo. El lenguaje Visual Basic heredó el espíritu, el estilo y en parte la sintaxis de su antecesor, el lenguaje BASIC, que tiene muchos dialectos. Al mismo tiempo, Visual Basic combina procedimientos y elementos de lenguajes de programación orientados a objetos y orientados a componentes. El entorno de desarrollo de VB incluye herramientas para diseñar visualmente la interfaz de usuario. (ver tabla).

Visual Basic (características clave)

Se considera Visual Basic un buen remedio desarrollo rápido de prototipos de programas, para el desarrollo de aplicaciones de bases de datos y, en general, para el método de componentes para crear programas que se ejecutan bajo los sistemas operativos de la familia Microsoft Windows.

En el proceso de evolución, Visual Basic ha pasado por una serie de etapas sucesivas que le han permitido convertirse en uno de los lenguajes de programación más populares en la actualidad. Así que la evolución VisualBasic fue de la siguiente manera:

1. Mayo de 1991: lanzamiento de Visual Basic 1.0 para Microsoft Windows. La sintaxis QBasic se tomó como base del lenguaje, y la innovación, que luego trajo gran popularidad al lenguaje, fue el principio de comunicación entre el lenguaje y la interfaz gráfica.

2. Septiembre de 1992: se lanza Visual Basic 1.0 para DOS. No era totalmente compatible con la versión de Windows de VB, ya que era la próxima versión de QuickBASIC y se ejecutaba en modo de texto de pantalla.

3. Noviembre de 1992: lanzamiento de Visual Basic 2.0. El entorno de desarrollo se volvió más fácil de usar y funcionó más rápido.

4. verano de 1993: se lanzó Visual Basic 3.0 en las ediciones Standard y Professional. Además, se ha agregado al paquete un motor para trabajar con bases de datos de Access.

5. Agosto de 1995: Visual Basic 4.0: una versión que podía crear programas de Windows de 32 y 16 bits.

6. Febrero de 1997 - Visual Basic 5.0 - a partir de esta versión fue posible, junto con las aplicaciones convencionales, desarrollar componentes COM.

7. A mediados de 1998, se lanzó Visual Basic 6.0. Desde entonces, Microsoft ha cambiado drásticamente su política de idioma básico. En lugar de desarrollar Visual Basic, se creó un lenguaje Visual Basic .NET completamente nuevo.

8. En 2005, se lanzó una nueva versión de Visual Basic, incluida con Visual Studio. Estaba satisfecha con la nueva interfaz y las funciones. El lenguaje está basado en Visual Basic.NET.

9. A finales de 2007, Microsoft lanzó nueva versión Visual Basic: Visual Basic 2008, que también se basó en Visual Basic.NET.

Según la funcionalidad y las especificaciones de la aplicación, se pueden distinguir las siguientes variedades de este programa:

1. Visual Basic clásico (versiones 5-6) Este lenguaje está muy ligado a su entorno de desarrollo y al sistema operativo Windows, siendo exclusivamente una herramienta para escribir aplicaciones Windows.

2. VisualBasicforApplications (VBA) Esta es una herramienta de programación, casi no diferente del clásico Visual Basic, que está diseñado para escribir macros y otras aplicaciones para aplicaciones específicas. Más popular debido a su uso en paquete de microsoft oficina. El uso generalizado de Visual Basic para aplicaciones, junto con una falta inicial de atención a los problemas de seguridad, ha dado lugar a virus de macro generalizados.

3. VisualBasicScriptingEdition (VBScript) Lenguaje de secuencias de comandos, que es una versión algo truncada del Visual Basic normal. Utilizado principalmente para la automatización de la administración. sistemas Windows y para crear páginas ASP y scripts para Internet Explorer.

3.2 Interfaz VisualBasicforApplication, funciones y características principales

Al crear VisualBasicforApplication, Microsoft Corporation fijó como tarea principal la creación apoyo instrumental, accesible a usuarios que no son programadores profesionales, pero a la vez lo suficientemente calificados para desarrollar y diseñar aplicaciones y aplicaciones basadas en Microsoft Office. Fue para resolver este problema que los desarrolladores crearon VBA, dotándolo con una serie de características únicas. Uno de estos, el más valioso para el usuario, es la capacidad de crear y utilizar no estándar (personalizable) Cuadros de diálogo, agregando un objeto UserForm al proyecto, así como una conveniente interfaz de usuario.

La interfaz del programa VisualBasicforApplication consta de un complejo varias ventanas y pestañas utilizadas a la hora de diseñar la aplicación que se está creando, siendo las principales:

1) la ventana Proyecto (Fig. 2), que muestra la estructura del proyecto que se está creando.

2) la ventana Código de programa (Fig. 3), que muestra el código de programa del proyecto que se está creando y permite escribir un programa la forma clásica usando el editor incorporado de palabras clave, de las cuales hay más de 16 mil en VBA. Además, esta ventana le permite editar el código y verificar si hay errores.

3) la pestaña Propiedades (Fig. 4), que muestra los parámetros establecidos para el objeto especificado y permite cambiar la configuración especificada.

Moviéndose entre ventanas y pestañas, el usuario puede personalizar fácilmente el proyecto creado.

Usando formularios VBA creados por el usuario, puede crear cuadros de diálogo personalizados para mostrar datos o recibir valores del usuario del programa de la manera que mejor se adapte a las necesidades del programa. Por ejemplo, puede crear un cuestionario, mostrar un cuadro de diálogo para mostrar preguntas de opción múltiple y permitir que el usuario seleccione una de las opciones de respuesta que considere correcta.

Los cuadros de diálogo no estándar permiten que el programa interactúe con su usuario de la manera más compleja y proporcione una variedad de datos de entrada y salida.

Se crea un cuadro de diálogo personalizado en VBA agregando un objeto UserForm al proyecto. Este objeto es un cuadro de diálogo vacío; tiene una barra de título y un botón de cierre, pero carece de otros controles. Se crea un cuadro de diálogo personalizado al agregar controles al objeto UserForm y, por lo general, se lo conoce simplemente como un formulario (Figura 5).

Cada objeto UserForm tiene propiedades, métodos y eventos que hereda de la clase de objeto UserForm.

Cada objeto UserForm también contiene un módulo de clase en el que el usuario agrega sus propios métodos y propiedades, o escribe procedimientos de eventos para ese formulario.

La capacidad de crear su propia interfaz independiente del entorno del programa de aplicación, como Excel, utilizando formularios de pantalla es una de las características más valiosas de VBA.

Los formularios de pantalla son ventanas para varios propósitos y tipos creados por el usuario para su aplicación. Contienen controles que permiten al usuario compartir información con la aplicación.

VBA utiliza el diseño gráfico del formulario generado, con configuraciones para las propiedades y controles del formulario, para obtener toda la información necesaria para mostrar el cuadro de diálogo: el tamaño del cuadro de diálogo, los controles que contiene, etc. Como resultado, VBA le permite mostrar un formulario de cuadro de diálogo con una sola declaración.

Para mostrar un cuadro de diálogo personalizado, utilice el método Show del objeto UserForm. Si el formulario no está actualmente cargado en la memoria, el método Show carga el formulario y lo muestra. Si el formulario ya está cargado, el método Show simplemente lo muestra.

Mostrar un solo cuadro de diálogo para completar una tarea no suele ser suficiente. Casi siempre es necesario determinar el estado de los controles del cuadro de diálogo para saber qué datos u opciones ha seleccionado el usuario. Por ejemplo, si se utiliza un cuadro de diálogo para preguntar al usuario por qué columnas y filas se debe ordenar la hoja de trabajo, debe poder averiguar qué valores ha ingresado el usuario después de que se cierra el cuadro de diálogo y antes de la operación de clasificación. en realidad comienza.

En otros casos, es posible que desee cambiar dinámicamente los títulos de los botones (u otros controles) en un cuadro de diálogo, actualizar dinámicamente una etiqueta o campo asociado con un control numérico o validar dinámicamente los datos ingresados ​​en un cuadro de diálogo.

En VBA, es posible expandir significativamente el conjunto de funciones integradas en una aplicación estándar, como Microsoft Excel, así como crear funciones cuyos valores dependen de ciertas condiciones y eventos.

VBA le permite programar funciones de tabla. Para crear una hoja de trabajo separada para un módulo de programa, existe la pestaña Insertar módulo del menú Visual, el comando Módulo del menú Insertar macro. Después de eso, aparecerá una nueva hoja de trabajo "Modelo1". En el módulo del programa, debe describir la función en el lenguaje VBA. Puede trabajar en la ventana del módulo del programa como en la ventana de un pequeño editor de texto.

Las funciones se incrustan mediante el comando Examinador de objetos del menú Ver. Las funciones definidas por el usuario se tratan como objetos independientes en el programa. VBA tiene un conjunto significativo de funciones integradas, dividiéndolas en tipos.

Visual Basic le permite reservar variables, con o sin tamaño, trabajar con diferentes tipos de datos, usar constantes, trabajar con funciones y operadores matemáticos y usar operadores adicionales. Se proporciona el uso de operadores For Next, Do loop, objetos del tipo "timer" (cronómetro invisible en el programa). La precisión de establecer la hora en el programa es de 1 milisegundo o 1/1000 seg. Un temporizador de ejecución se ejecuta constantemente, es decir, la rutina de interrupción correspondiente se ejecuta después de un intervalo de tiempo específico, hasta que el usuario detiene el temporizador o desactiva el programa.

En VBA, puede establecer cualquier propiedad para un formulario, incluido el título, el tamaño, el tipo de marco, el color de fondo y de los caracteres, la fuente del texto y la imagen de fondo.

Para resumir todas las funciones del programa, Visual Basic forApplication le permite:

1) trabajar con controles

Ventajas :

1. Alta velocidad de creación de aplicaciones GUI para MS Windows.

2. Sintaxis simple que te permite aprender el idioma muy rápidamente.

3. Capacidad de compilar tanto en código máquina como en código P (a elección del programador). En el modo de depuración, el programa siempre (independientemente de la elección) se compila en código P, lo que le permite pausar la ejecución del programa, realizar cambios significativos en el código fuente y luego continuar la ejecución: una recompilación completa y reinicio de el programa no es necesario.

4. Protección contra errores asociados al uso de punteros y acceso a memoria. Este aspecto hace que las aplicaciones de Visual Basic sean más estables, pero también es objeto de críticas.

5. Capacidad de usar la mayoría de las funciones de WinAPI para expandir la funcionalidad de la aplicación. Dan Appleman, quien escribió el libro Guía del programador de Visual Basic para la API de Win32, exploró más a fondo este problema.

Crítica :

1. A menudo se critican aspectos de Visual Basic como la capacidad de desactivar los medios de seguimiento de variables declaradas, la posibilidad de conversión implícita de variables, la presencia del tipo de datos Variant. Según los críticos, esto hace posible escribir código extremadamente malo. Por otro lado, esto puede verse como un plus, ya que VB no impone "buen estilo", sino que da más libertad al programador.

2. Falta de punteros, acceso a memoria de bajo nivel, inserciones ASM. Aunque el paradigma de Visual Basic permite que el programador promedio de VB prescinda de todo esto, estas cosas también son criticadas a menudo. Y aunque, usando características no documentadas y ciertos trucos, todo esto se puede implementar en VB (por ejemplo, usando funciones para obtener punteros VarPtr(), StrPtr() y ObjPtr()); usar estos trucos es mucho más difícil que, por ejemplo, en C++.

Sin embargo, vale la pena señalar que todas las deficiencias del lenguaje provienen de su principal ventaja: la simplicidad de desarrollar una interfaz gráfica. Por lo tanto, muchos programadores utilizan Visual Basic para desarrollar la interfaz de usuario y la funcionalidad del programa se implementa como bibliotecas de vínculos dinámicos (DLL) escritas en otro lenguaje (la mayoría de las veces C++).

4. Parte práctica

4.1 Planteamiento del problema

Dibuja un diagrama de bloques y escribe un programa en Pascal. Calcular el valor intrínseco de los valores. El valor intrínseco de un activo está determinado por el flujo de ingresos futuros de ese activo

pv es el valor intrínseco actual de la acción

c es el rendimiento esperado del activo en cuestión

r es la tasa de rendimiento esperada por el inversor para un rendimiento con un nivel de riesgo adecuado

n es el factor tiempo (en meses).

Realice análisis de mercado y ordene el resultado en orden ascendente de los datos recibidos.

4.2 Texto del programa en Pascal

pv: matriz de reales;

writeLn('Ingrese el ingreso esperado de ',i,'th activo c:');

writeLn('Ingrese la tasa de retorno esperada por el inversionista r:');

pv:=c/exp(ln(1+r)*i);

writeLn('el valor intrínseco actual del activo es', pv[i]:1:3);

writeLn('El valor intrínseco del activo es', s);

para j:=1 a 4 hacer

si pv[j] > pv entonces

writeLn('Valor del activo ordenado en orden ascendente');

para i:=1 a 5 hacer

escribirLn(pv[i]:1:3);

4.3 Caso de prueba

4.4El resultado de la ejecución del programa en el caso de prueba

Conclusión

Entonces, resumiendo todo lo anterior, debe tenerse en cuenta que el software de herramientas es uno de los tipos de software, que tiene sus tareas y funciones generales.

Sin embargo, al ser un tipo de software altamente especializado, tiene un cierto conjunto de propiedades y funciones únicas que brindan una solución a sus tareas inherentes.

Cabe señalar la tendencia emergente hacia la simplificación del proceso de programación y la creación de una cierta subclase: programación semiprofesional para fines aplicados.

Esto es lo que le permitirá a un usuario de computadoras experimentado, pero no programador profesional, crea algunas aplicaciones y pequeños archivos ejecutables en el entorno de Microsoft Office, que se utilizan principalmente para fines contables y de gestión de documentos en pequeñas empresas.

Es con este propósito que Microsoft desarrolló el paquete de software VisualBasicforApplication, que facilita la programación y hace posible que los usuarios programen aplicaciones, no los programadores. Esta oportunidad se implementó principalmente mediante la creación de una sección del programa: "Editor de secuencias de comandos" y la capacidad de grabar y ejecutar "Macros" como un tipo separado de módulos programables gráficamente. Implementada la capacidad de crear aplicaciones con una interfaz gráfica para MS Windows. Además, la ventaja de este tipo de software de herramientas es una sintaxis simple que le permite aprender rápidamente el idioma y usarlo para programar en todas las aplicaciones estándar de Microsoft Office.

Por lo tanto, es difícil sobreestimar la importancia de las herramientas en general y de VisualBasic for Application en particular, aunque las deficiencias, como se mencionó anteriormente, también se presentan. Pero estos no son ni siquiera los aspectos negativos del producto, sino más bien pautas para seguir mejorando las herramientas en la persona de VisualBasicforApplication.

1. Lenguajes algorítmicos en tiempo real / Ed. Yanga S./ 2004

2. PC Magazine Edición Rusa №2 2008 Informática hoy.

3. Informática. / Ed. Mogilev A.V., Pak N.I., Henner E.K. / - M .: ACADEMIA, 2000.

4. Informática y tecnologías de la información: Libro de texto / Ed. Romanova D.Yu. / LLC "Editorial" Eksmo ", 2007.

5. La última enciclopedia de la computadora personal /Ed. Leontieva V. / Moscú, 1999. – 271 pág.

6. Nuevos lenguajes de programación y tendencias en su desarrollo / Ed. Ushkova V. / 2001

7. Pedagogía / Ed. Pidkasistogo P.I. / - M .: Sociedad Pedagógica de Rusia, 2000.

8. Programación para Microsoft Excel 2000 en 21 días. / Ed. Harisa M./ - M.: Williams, 2000.

9. Simonovich S. Informática: un curso básico. proc. para universidades. San Petersburgo, Peter, 2002

10. Con Excel 2000 no hay problema. / Ed. Kowalski/-M.: Binom, 2000.

11. "Trabajo efectivo en Windows 98" /Ed. Stinson K. / 2000. – 247 pág.

12. Lenguajes de programación. kn.5 / Ed. Vaulina A.S. / 2003

13. Lenguajes de programación: desarrollo e implementación / Ed. Terrence P. / 2001

14. Libro de texto electrónico de informática. Alekseev E.G. http://www.stf.mrsu.ru/economic/lib/Informatics/text/Progr.html\

software de herramientas está destinado a su uso en el diseño, desarrollo y mantenimiento de programas informáticos. Las herramientas de software incluyen los siguientes tipos de programas:

compiladores

traductores

Ensambladores

Intérpretes

Enlazadores

Depuradores

Herramientas para pruebas automatizadas de programas.

Generadores de Documentación

Kit de desarrollo (SDK)

Sistemas de control de versiones

Sistemas de programación y entornos integrados de desarrollo de programas.

Programación de Sistemas de Automatización (CASE)

Compilador es una herramienta de software para traducir programas escritos en un lenguaje de programación en programas representados en códigos binarios de máquina. Los compiladores se dividen en tres tipos: compiladores, ensambladores e intérpretes.

Traductor es el compilador completamente traduce programas en cualquier lenguaje de programación a códigos de máquina o al llamado código objeto. El programa resultante en códigos de máquina se puede convertir más tarde en un módulo ejecutable, cargado en RAM y ejecutado por el procesador. El tipo de traductor es ensamblador - un programa que traduce el texto del programa escrito en un lenguaje orientado a máquina ("mnemocode" o "lenguaje ensamblador") a código binario. El concepto de ensamblador a menudo se asocia directamente con un lenguaje orientado a máquina. Por lo tanto, este término se usa a veces en el sentido de un lenguaje de programación a nivel de máquina.

Interprete- este es un compilador que línea por línea (o un comando) traduce el programa fuente en un lenguaje de programación a códigos binarios e inmediatamente transfiere este código binario al procesador para su ejecución.

enlazador- un programa que produce diseño ejecutable o código de arranque: toma uno o más módulos de objetos como entrada y ensambla un módulo ejecutable basado en ellos, que puede cargarse en la memoria y ejecutarse por el procesador.

depurador- por regla general, es parte del entorno de desarrollo de software o una aplicación separada diseñada para encontrar errores en el programa. El depurador le permite recorrer el programa, monitorear, establecer o cambiar los valores de las variables durante la ejecución del programa, establecer y eliminar puntos de interrupción o condiciones de interrupción, etc.

Herramientas para pruebas automatizadas de programas.módulos de software, lo que le permite crear pruebas automatizadas con una participación humana mínima y emitir automáticamente secuencias de prueba a la entrada, rastrear la reacción del programa bajo prueba. Como regla general, estas herramientas prueban la velocidad y la confiabilidad de los programas con grandes flujos de datos; esta es la llamada "prueba de carga". Por ejemplo, verificar programas con alto tráfico de red, etc. Sin embargo, existen herramientas de prueba de funcionalidad, como herramientas diseñadas para verificar que una aplicación cumple con los requisitos comerciales.

Generador de documentación- un programa o paquete de software que permite obtener documentación destinada a programadores (documentación API) y/o para usuarios finales del sistema, sobre código fuente especialmente comentado y, en algunos casos, sobre módulos ejecutables (obtenidos a la salida del compilador). Normalmente, el generador analiza el código fuente del programa, destacando las construcciones sintácticas correspondientes a los objetos significativos del programa (tipos, clases y sus miembros/propiedades/métodos, procedimientos/funciones, etc.). El análisis también utiliza metainformación sobre los objetos del programa, presentados en forma comentarios documentales. En base a toda la información recopilada, la documentación preparada se forma, por regla general, en uno de los formatos generalmente aceptados: HTML, HTMLHelp, PDF, RTF y otros.

Kit de desarrollo (SDK, Kit de desarrollo de software) o "devkit": un conjunto de programas y bibliotecas de subrutinas que permite a los profesionales del software crear aplicaciones para un paquete de software específico, software de herramienta de desarrollo, plataforma de hardware, sistema informático, consolas de videojuegos, sistemas operativos y otras plataformas. El programador suele obtener el SDK directamente del desarrollador de la tecnología o el sistema de destino. A menudo, el SDK se distribuye a través de Internet. Muchos SDK se distribuyen de forma gratuita para animar a los desarrolladores a utilizar una determinada tecnología o plataforma.

Sistema de control de versiones (Sistema de control de versiones, VCS o Sistema de Control de Revisión) - software para facilitar el trabajo con información cambiante. El sistema de control de versiones le permite almacenar varias versiones de un mismo documento, si es necesario, volver a versiones anteriores, determinar quién y cuándo realizó tal o cual cambio, y mucho más. Dichos sistemas se utilizan más ampliamente en el desarrollo de software, para almacenar los códigos fuente del programa que se está desarrollando. Sin embargo, se pueden aplicar con éxito en otras áreas donde se procesa una gran cantidad de documentos electrónicos que cambian continuamente.

Entorno de desarrollo integrado (IDE) (Entorno de desarrollo integrado, IDE) es un sistema de software utilizado para el desarrollo de software. Por lo general, un entorno de desarrollo incluye un editor de texto, un compilador o intérprete, herramientas de automatización de compilación y un depurador. A veces también contiene herramientas para la integración con sistemas de control de versiones y varias herramientas para simplificar la construcción de una interfaz gráfica de usuario. Muchos entornos de desarrollo modernos también incluyen navegador de clases, inspector de objetos y diagrama de jerarquía de clases- para su uso en el desarrollo de software orientado a objetos. Aunque existen entornos de desarrollo diseñados para múltiples lenguajes, como Eclipse, NetBeans, Embarcadero RAD Studio o Microsoft Visual Studio, generalmente un entorno de desarrollo está destinado a un lenguaje de programación específico, como Visual Basic, Delphi, Dev-C++. Un caso especial de ISR son los entornos de desarrollo visual, que incluyen la capacidad de editar visualmente la interfaz del programa. A veces el ISR se llama "sistema de programación" , aunque en la mayoría de los casos la EDT cubre una amplia gama de características y capacidades.

Programación de sistemas de automatización(Ingeniería de sistemas asistida por computadora, CASO ) es un paquete de software que automatiza todo el proceso tecnológico de análisis, diseño, desarrollo, codificación, depuración y mantenimiento de sistemas de software complejos. La principal ventaja de la tecnología CASE es el soporte del trabajo colectivo en el proyecto debido a la posibilidad de trabajar en la red local y global de desarrolladores, exportar (importar) cualquier fragmento del proyecto, gestión organizada del programa. Por regla general, los sistemas CASE admiten la generación automática de código de programas: la creación de un marco por parte del programa del sistema y la creación de un producto completo con la documentación del sistema.

Software de la aplicacion

Esta categoría incluye programas complejos de software y sistemas de software con la ayuda de los cuales se resuelven tareas específicas del usuario con fines de producción, creativos, de entretenimiento, educativos o de cualquier otro tipo. El software de aplicación se divide en los siguientes tipos:

Programas orientados a problemas

Sistemas diseño asistido por ordenador(CANALLA)

Software para sistemas de control automatizado

Programas de propósito general

sistemas de oficina

Sistemas inteligentes

Sistemas de software multimedia

Sistemas de autoedición

Programas orientados a problemas diseñado para resolver problemas aplicados relacionados con las actividades de producción humana, por ejemplo:

Programas de contabilidad;

programas de actividad financiera;

programas de gestión de personal;

Programas de gestión empresarial;

información bancaria y sistemas automatizados;

Lugares de trabajo automatizados en la empresa;

Sistemas de diseño asistido por computadora (Sistema CAD - Sistema de Diseño Asistido por Computadora ) están diseñados para apoyar el trabajo de diseñadores, tecnólogos, electricistas e ingenieros electrónicos, arquitectos y otros profesionales asociados con el desarrollo de dibujos, diagramas, modelos, modelado gráfico, diseño. Los sistemas de esta clase son muy exigentes con el hardware, la velocidad y la memoria de la computadora. Es fundamental contar con bibliotecas de funciones integradas, objetos, interfaces con sistemas gráficos y bases de datos.

En CAD, se acostumbra distinguir siete tipos de seguridad:

Técnico(TO), incluido hardware diverso (computadoras, dispositivos periféricos, equipos de conmutación de red, líneas de comunicación, herramientas de medición);

Matemático(MO), combinando métodos matemáticos, modelos y algoritmos para realizar el diseño;

Software(software) representado por programas informáticos CAD;

informativo(IO), que consta de bases de datos (DB), sistemas de gestión de bases de datos (DBMS), así como otros datos utilizados en el diseño. El conjunto completo de datos utilizados en el diseño se denomina fondo de información CAD, y la base de datos junto con el DBMS se denomina banco de datos (BnD);

Lingüístico(LO), expresado por los lenguajes de comunicación entre diseñadores y computadoras, lenguajes de programación y lenguajes de intercambio de datos entre medios técnicos de CAD;

metódico(MetO), que incluye varias técnicas de diseño, a veces también se hace referencia al software como MetO;

Organizativo(OO), representado por tablas de dotación de personal, descripciones de trabajo y otros documentos que regulan el trabajo de la empresa de diseño.

Por alcance, se pueden distinguir los siguientes grupos CAD:

CAD para uso en industrias de ingeniería en general. A menudo se los denomina sistemas CAD mecánicos o MCAD (CAD mecánico);

CAD para electrónica de radio. Sus nombres son sistemas ECAD (Electronic CAD) o EDA (Electronic Design Automation).

CAD en el campo de la arquitectura y la construcción.

Además, se conocen un gran número de sistemas CAD más especializados, ya sea ubicados en los grupos indicados, o representando una rama independiente en la clasificación. Ejemplos de tales sistemas son CAD para grandes circuitos integrados (LSI); avión CAD; CAD para máquinas eléctricas, etc.

Por finalidad prevista distinguir entre CAD o subsistemas de CAD que proporcionan diferentes aspectos del diseño. Entonces, los sistemas CAE/CAD/CAM aparecen como parte de MCAD:

Diseño funcional CAD, en caso contrario sistemas CAD-F o CAE (Computer Aided Engineering).

Diseño CAD para ingeniería general: CAD-K, a menudo denominado simplemente como sistemas CAD;

Sistemas tecnológicos CAD para ingeniería mecánica general - CAD-T, también llamados sistemas automatizados para preparación tecnológica de producción ASTPP o sistemas CAM (Computer Aided Manufacturing).

Sistema de control automatizado (ACS)- un complejo de hardware y software diseñado para controlar varios procesos dentro del proceso tecnológico, producción, empresa. Los ACS se utilizan en diversas industrias, energía, transporte, etc. El término automatizado, en contraste con el término automático, enfatiza la retención por parte del operador humano de algunas funciones relacionadas con el establecimiento de una meta, la toma de una decisión o la realización de algunas funciones que no pueden ser automatizado.

Las siguientes clases de ACS son las más conocidas:

Sistema de control de procesos automatizado (APCS): resuelve los problemas de gestión operativa y control de objetos técnicos en la industria, la energía, el transporte;

Sistema automatizado de preparación técnica (tecnológica) de la producción (ASTPP) - un sistema asociado a la organización de procesos técnicos que existen o recién están surgiendo en la producción, basado en la programación de máquinas herramienta con control numérico, la fabricación y montaje de programa- robots controlados, etc.

Sistema de gestión de producción automatizado (APCS): resuelve los problemas de organización de la producción, incluidos los principales procesos de producción, logística de entrada y salida. Realiza la planificación a corto plazo de la producción teniendo en cuenta las capacidades de producción, el análisis de la calidad del producto, el modelado del proceso de producción. Para solucionar estos problemas se utilizan los sistemas MIS y MES, así como los sistemas LIMS.

Sistema de gestión empresarial automatizado (APCS): los sistemas MRP, MRP II y ERP se utilizan para resolver estos problemas. Por ejemplo, si la empresa es una institución de educación superior, existe una universidad ACS.

Como ejemplo Los ACS más famosos se pueden identificar:

Sistema de control de tráfico automatizado o ASUD: diseñado para controlar los flujos de vehículos y peatones en la red vial de una ciudad o carretera;

Sistema de control de alumbrado público automatizado ("ASU UO"): diseñado para organizar la automatización del control centralizado del alumbrado público;

"Sistema de control automatizado" para hoteles;

Sistema de control de viajes automatizado (ASKP) en transporte público en Moscú, etc.

Recientemente, ha sido ampliamente utilizado e implementado. sistemas automatizados de procesamiento y control de la información (ASOIU) - esta es una amplia clase de sistemas de control automatizado asociados con la automatización en el campo del procesamiento, almacenamiento y transmisión de información. ASOIU, a diferencia de ACS, se puede usar en casi todas partes, en forma sistemas de información, sistemas de control, sistemas de automatización en casi cualquier campo de la actividad humana. Las ASOIU modernas se basan en el uso Red de computadoras, enfocada al procesamiento de información gráfica, video y sonora, utiliza tecnologías multimedia, elementos de sistemas de inteligencia artificial. Sin este tipo de software, actualmente es difícil imaginar una empresa moderna, independientemente del tamaño y la dirección de la actividad. Esto explica el rápido crecimiento en el uso de ASOIU en todos los sectores de la economía.

al grupo programas de propósito general puede ser atribuido:

Sistemas de gestión de bases de datos (DBMS)

Servidores de base de datos

Generadores de informes

Procesadores de palabras

Procesadores de mesa

Herramientas gráficas de presentación

Paquetes integrados

Programas orientados a métodos

Sistemas de gestión de bases de datos (DBMS)- proporcionar organización y almacenamiento de bases de datos locales en computadoras independientes o almacenamiento centralizado de bases de datos en un servidor de archivos y acceso a la red. Los DBMS modernos contienen elementos de la tecnología CASE del proceso de diseño, en particular:

Visualización de esquemas de bases de datos;

Mantenimiento automático de la integridad de la base de datos para varios tipos de procesamiento (inclusión, eliminación, modificación);

La presencia de los llamados asistentes que brindan soporte para el proceso de diseño;

Plantillas y prototipos de estructuras de bases de datos, informes de formularios, etc.

Servidores de base de datos es un software diseñado para crear y utilizar bases de datos integradas en una arquitectura cliente-servidor cuando se trabaja en red.

El DBMS multiusuario en la versión de red del procesamiento de información almacena datos en un servidor de archivos, una computadora especialmente dedicada, pero el procesamiento en sí se lleva a cabo en estaciones de trabajo.

Común a varios tipos de bases de datos es el uso de SQL relacional (lenguaje de consulta estructurado) para implementar consultas sobre datos.

Generadores de informes(servidores de informes) proporcionan la implementación de consultas y la formación de informes en forma impresa o en pantalla en una red con una arquitectura cliente-servidor. El servidor de informes se conecta al servidor de la base de datos mediante controladores de servicio de base de datos (Crystal Reports, Profit para Windows).

Procesadores de palabras diseñado para trabajar con documentos de texto. Desarrollo esta direccion son sistemas de publicación de Microsoft Word).

Procesadores de mesa son un entorno conveniente para la informática, que contiene herramientas de gráficos comerciales, herramientas de procesamiento especializadas (Microsoft Excel).

Herramientas gráficas de presentación- estos son programas especializados diseñados para crear imágenes y mostrarlas en la pantalla, preparar películas de diapositivas, dibujos animados y diseñarlos (Microsoft PowerPoint, Flash).

Paquetes integrados es un conjunto de varios productos de software que se complementan funcionalmente entre sí, admiten tecnologías de información unificadas implementadas en una sola plataforma informática operativa (Microsoft Office).

Los componentes de los paquetes integrados pueden funcionar de forma aislada unos de otros, tener interfaz común lo que los hace más fáciles de aprender.

Solicitud de propuesta orientada a métodos proporcionar, independientemente del área temática y la función de los sistemas de información, métodos matemáticos, estadísticos y de otro tipo para resolver problemas. Los métodos más comunes son la programación matemática, la resolución de ecuaciones diferenciales, el modelado de simulación, la investigación de operaciones (Storm, SYSTAT, SAS, etc.)

Office PPP proporciona gestión organizativa de las actividades de la oficina.

Las APP de Office incluyen:

Organizadores (planificadores): software para planificar el tiempo de trabajo, redactar actas de reuniones, programar, llevar registros y una guía telefónica (calculadora, Computadora portátil, reloj, calendario, etc.)

Programas de traducción, correctores ortográficos, reconocimiento de texto (Tiger - sistema de reconocimiento de idioma ruso, Stylus Lingvo Office que contiene Fine Reader, Stylus para Windows - traductor para el idioma especificado, corrector ortográfico Lingvo Corrector y diccionario residente Lingvo)

Paquetes de comunicación diseñados para organizar la interacción del usuario con suscriptores remotos o recursos de información de red (ICQ, etc.)

Navegadores, herramientas para crear páginas WWW

Servicios de correo electrónico (Pegasys Mail)

Sistemas de autoedición- Esta es una amplia clase de software que implementa los componentes principales de la publicación.

Esta clase de software incluye programas que proporcionan:

Dar formato y editar textos.

Paginación automática de texto

Diseño informático de la página impresa

Gráficos de montaje

Preparación de ilustraciones

Preparación del diseño original.

Los sistemas de autoedición incluyen:

Photoshop para Windows

software multimedia. El significado principal de estas herramientas de software es la creación y el uso de información de audio y video para la expansión. espacio de información usuario (varias bases de datos de obras de arte informáticas, videotecas, mediatecas, bibliotecas de grabaciones sonoras, etc.)

Sistemas de inteligencia artificial:

Programas shell para crear sistemas expertos llenando bases de conocimiento y reglas de inferencia

Sistemas expertos listos para usar para la toma de decisiones dentro de ciertas áreas temáticas

Sistemas de análisis y reconocimiento de voz, texto, etc.

Los sistemas inteligentes (SI) pueden entenderse como sistemas automáticos y automatizados con elementos de inteligencia artificial (IA).

Las principales áreas de la IA son:

Representación del conocimiento y desarrollo de sistemas basados ​​en el conocimiento

Creatividad y juegos (ajedrez, damas, go)

Desarrollo de interfaces de lenguaje natural y traducción automática de textos

Reconocimiento de patrones (a cada objeto se le asigna una matriz de características, según la cual pasa su reconocimiento)

Nuevas arquitecturas de componentes (neurocomputadoras)

Robots inteligentes

Software especial (lenguajes Lisp, Prolog)

Formación y autoaprendizaje (incluyen modelos, métodos y algoritmos enfocados a la acumulación automática de conocimiento a partir del análisis y generalización de datos)

Conocimiento- esta es la identificación de los patrones del área temática (principios, conexiones, leyes), que permiten resolver problemas en esta área. El conocimiento son datos sobre datos, o metadatos.

Modelos de representación del conocimiento:

Modelos de producción

Modelos semánticos

Modelos de marco

Modelos lógicos formales

Las herramientas de software son programas que se utilizan en el desarrollo, modificación o desarrollo de otras aplicaciones o programas del sistema.

Las herramientas de software pueden ayudar en todas las etapas del desarrollo de software. En términos de propósito, están cerca sistemas de programación.

Las herramientas incluyen, por ejemplo:

    editores;

    herramientas de vinculación de programas;

    programas auxiliares que implementan acciones del sistema de uso frecuente;

    paquetes de software gráfico, etc.

      1. Sistema de programación

Un sistema de programación es un sistema para desarrollar nuevos programas en un lenguaje de programación específico.

Los sistemas de programación modernos generalmente brindan a los usuarios herramientas de programación poderosas y convenientes. Incluyen:

    compilador o intérprete;

    entorno de desarrollo integrado;

    herramientas para crear y editar textos de programas;

    bibliotecas extensas programas estándar y funciones;

    programas de depuración, es decir, programas que ayudan a encontrar y corregir errores en el programa;

    "amigable" para el entorno de diálogo del usuario;

    modo de operación de múltiples ventanas;

    potentes bibliotecas de gráficos; utilidades de la biblioteca

    ensamblador incorporado;

    mesa de ayuda integrada;

    otras características específicas.

Un traductor (traductor de inglés - traductor) es un programa de traducción. Convierte un programa escrito en uno de los lenguajes de alto nivel en un programa que consta de instrucciones de máquina.

Los traductores se implementan como compiladores o intérpretes. En términos de trabajo, un compilador y un intérprete son muy diferentes.

El compilador (compilador inglés - compilador, recopilador) lee todo el programa, lo traduce y crea una versión completa del programa en lenguaje de máquina, que luego se ejecuta.

Un intérprete traduce y ejecuta un programa línea por línea.

Una vez que se compila el programa, ya no se necesita ni el programa fuente ni el compilador. Al mismo tiempo, el programa procesado por el intérprete debe volver a traducirse a lenguaje máquina cada vez que se ejecuta el programa.

Los programas compilados se ejecutan más rápido, pero los programas interpretados son más fáciles de arreglar y cambiar.

Sistemas de programación populares - Turbo básico, básico rápido, Turbo Pascal, Turbo C, Borland C++, Borland Delphi, etc.

Cada lenguaje específico se enfoca ya sea en la compilación o en la interpretación, dependiendo del propósito para el cual fue creado. Por ejemplo, Pascal suele utilizarse para resolver problemas bastante complejos en los que la velocidad de los programas es importante. Por lo tanto, este lenguaje generalmente se implementa mediante un compilador. Por otro lado, Básico fue creado como un lenguaje para programadores novatos, para quienes la ejecución de programas línea por línea tiene ventajas innegables.

A veces hay un compilador y un intérprete para el mismo lenguaje. En este caso, puede usar un intérprete para desarrollar y probar el programa y luego compilar el programa depurado para acelerar su ejecución.

      Tendencias de desarrollo de software

El software de herramientas, como un tipo especial de software, se caracteriza por características generales y particulares.

funciones, como para todo el software en general. Discutimos las funciones generales arriba, y las funciones especializadas inherentes solo a este tipo de programa son:

1. Creación del texto del programa desarrollado utilizando palabras de código especialmente establecidas (lenguaje de programación), así como un determinado conjunto de caracteres y su ubicación en el archivo creado: la sintaxis del programa.

2. Traducción del texto del programa creado a un código orientado a máquina accesible para el reconocimiento por computadora. En el caso de un volumen significativo del programa creado, se divide en módulos separados y cada uno de los módulos se traduce por separado.

3. Conexión de módulos individuales en un solo código ejecutable, de acuerdo con la estructura necesaria, asegurando la coordinación de la interacción de las partes individuales entre sí.

4. Prueba y control del programa creado, detección y eliminación de errores formales, lógicos y sintácticos, comprobación de códigos prohibidos en los programas, así como evaluación del rendimiento y potencial del programa creado.

Tipos de software de herramientas.

En función de las tareas asignadas al software instrumental, se pueden distinguir un gran número de tipos diferentes de software instrumental:

1) Editores de texto

2) Entornos de Desarrollo Integrado

4) compiladores

5) Intérpretes

6) Enlazadores

7) Analizadores y generadores de analizadores (ver Javacc)

8) Ensambladores

9) Depuradores

10) Perfiladores

11) Generadores de Documentos

12) Herramientas de análisis de cobertura de código

13) Herramientas de Integración Continua

14) Herramientas de prueba automatizadas

15) Sistemas de control de versiones, etc.

Cabe señalar que los shells para crear programas de aplicación también son creados por programas de herramientas y, por lo tanto, pueden denominarse programas de aplicación. Considere brevemente el propósito de algunos programas instrumentales.

Editores de texto.

Un editor de texto es un programa informático diseñado para procesar archivos de texto, como crear y realizar cambios.

Tipos de editores de texto.

Convencionalmente, hay dos tipos de editores: editores de texto de transmisión y interactivo.

1) Editores de texto de transmisión

Los editores de texto continuo son programas informáticos que están diseñados para procesar automáticamente datos de texto de entrada recibidos de un archivo de texto de acuerdo con reglas predefinidas por los usuarios. La mayoría de las veces, las reglas son expresiones regulares, en un dialecto específico de este editor de texto en particular. Un ejemplo de dicho editor de texto es el editor Sed.

2) Editores de texto interactivos

Los editores de texto interactivos son una familia de programas informáticos diseñados para realizar cambios en un archivo de texto de forma interactiva. Dichos programas le permiten mostrar el estado actual de los datos de texto en un archivo y realizar varias acciones en ellos.

A menudo, los editores de texto interactivos contienen una funcionalidad adicional significativa diseñada para automatizar algunas de las acciones de edición o para realizar un cambio en la visualización de los datos de texto, según su semántica. El resaltado de sintaxis es un ejemplo del último tipo de funcionalidad.

Los editores de texto están diseñados para crear y editar documentos de texto. Los más comunes son MS WORD, Lexicon. Las principales funciones de los editores de texto son:

1) trabajar con fragmentos de documentos,

2) insertar objetos creados en otros programas

3) paginación del texto del documento

4) ingresar y editar tablas

5) ingresar y editar fórmulas

6) formato de párrafo

7) creación automática de listas

8) creación automática de una tabla de contenido.

Se conocen decenas de editores de texto. Los más accesibles son NOTEPAD(bloc de notas), WORDPAD, WORD. El trabajo de un editor de texto en particular generalmente está determinado por las funciones, cuyo propósito se refleja en los elementos del menú y en el sistema de ayuda.

Entorno de desarrollo integrado

El entorno de desarrollo integrado (IDE) es un sistema de software utilizado por los programadores para desarrollar software (SW). El entorno de desarrollo suele incluir:

1) editor de texto

2) compilador y/o intérprete

3) herramientas de automatización de montaje

4) depurador.

A veces también contiene herramientas para la integración con sistemas de control de versiones y una variedad de herramientas para simplificar la construcción de una interfaz gráfica de usuario. Muchos entornos de desarrollo modernos también incluyen un navegador de clases, un inspector de objetos y un diagrama de jerarquía de clases para usar en el desarrollo de software orientado a objetos. Si bien existen entornos de desarrollo diseñados para múltiples lenguajes de programación como Eclipse, NetBeans, Embarcadero RAD Studio, Qt Creator o Microsoft Visual Studio, un entorno de desarrollo suele estar destinado a un lenguaje de programación específico como Visual Basic, Delphi, Dev-C++ .

Un caso especial de ISR son los entornos de desarrollo visual, que incluyen la capacidad de editar visualmente la interfaz del programa.

SDK(del kit de desarrollo de software en inglés) o "devkit": un conjunto de herramientas de desarrollo que permite a los especialistas en software crear aplicaciones para un paquete de software específico, herramientas de desarrollo de software, plataforma de hardware, sistema informático, consolas de videojuegos, sistemas operativos y otras plataformas. .

El programador suele obtener el SDK directamente del desarrollador de la tecnología o el sistema de destino. A menudo, el SDK se distribuye a través de Internet. Muchos SDK se distribuyen de forma gratuita para animar a los desarrolladores a utilizar una determinada tecnología o plataforma.

Los proveedores de SDK a veces reemplazan el término Software en el Kit de desarrollo de software con una palabra más precisa. Por ejemplo, Microsoft y Apple proporcionan kits de desarrollo de controladores (DDK) para desarrollar controladores de dispositivos, mientras que PalmSource llama a su kit de herramientas de desarrollo "PalmOS Development Kit (PDK)".

Ejemplos de SDK:

5) Kit de desarrollo de Java

6) SDK de dispositivos Opera

compiladores.

compilador --

1) Un programa o herramienta de hardware que realiza la compilación.

2) El programa de máquina utilizado para la compilación.

3) Un traductor que convierte un programa escrito en el idioma fuente en un módulo objeto.

4) Un programa que traduce el texto de un programa en un lenguaje de alto nivel a un programa equivalente en lenguaje máquina.

5) Un programa diseñado para traducir un lenguaje de alto nivel a código absoluto o, a veces, a lenguaje ensamblador. La información de entrada para el compilador (código fuente) es una descripción del algoritmo o un programa en un lenguaje específico del dominio, y la salida del compilador es una descripción equivalente del algoritmo en un lenguaje orientado a máquina (código objeto).

Compilando --

1) Traducción del programa a un lenguaje cercano a la máquina.

2) Traducción de un programa escrito en el idioma fuente a un módulo objeto. Implementado por el compilador.

Compilar: traducir un programa de máquina de un lenguaje específico de dominio a un lenguaje específico de máquina.

Tipos de compilador:

1) Vectorizar. Traduce el código fuente al código de máquina de las computadoras equipadas con un procesador vectorial.

2) flexibles. Compilado de forma modular, controlado por tablas y programado en un lenguaje de alto nivel o implementado con un compilador compilador.

3) Diálogo.

4) incrementales. Retraduce fragmentos y extensiones del programa sin volver a compilar todo el programa.

5) Interpretativa (paso a paso). Realiza secuencialmente una compilación independiente de cada declaración individual (comando) del programa fuente.

6) Compilador de compiladores. Un traductor que toma una descripción formal de un lenguaje de programación y genera un compilador para ese lenguaje.

7) Depurar. Elimina ciertos tipos de errores de sintaxis.

8) Residente. Reside permanentemente en la memoria principal y está disponible para su reutilización por muchas tareas.

9) Autocompilado. Escrito en el mismo idioma desde el que se realiza la emisión.

10) Universales. Basado en una descripción formal de la sintaxis y la semántica del lenguaje de entrada. Los componentes de dicho compilador son: el kernel, los cargadores sintácticos y semánticos.

Tipos de compilación:

1) Lote. Compilación de múltiples módulos fuente en un elemento de trabajo.

2) Línea por línea.

3) Condicional. Recopilación en la que el texto traducido depende de las condiciones especificadas en el programa fuente. Entonces, dependiendo del valor de alguna constante, puede activar o desactivar la traducción de una parte del texto del programa.

estructura del compilador.

El proceso de compilación consta de los siguientes pasos:

1) Análisis léxico. En esta etapa, la secuencia de caracteres del archivo fuente se convierte en una secuencia de tokens.

2) Análisis sintáctico (gramatical). La secuencia de tokens se convierte en un árbol de análisis.

3) Análisis semántico. El árbol de análisis se procesa para establecer su semántica (significado), por ejemplo, vinculando identificadores a sus declaraciones, tipos, comprobaciones de compatibilidad, determinación de tipos de expresión, etc. El resultado suele denominarse "representación/código intermedio" y puede aumentarse con un árbol de análisis, un nuevo árbol, un conjunto abstracto de comandos o algo más conveniente para un procesamiento posterior.

4) Optimización. Las construcciones redundantes se eliminan y el código se simplifica manteniendo su significado. La optimización puede estar en diferentes niveles y etapas, por ejemplo, sobre el código intermedio o sobre el código de máquina final.

5) Generación de código. A partir de la representación intermedia se genera código en el idioma de destino.

En implementaciones específicas de compiladores, estas etapas se pueden separar o combinar de una forma u otra.

Radiodifusión y composición.

Una característica histórica importante del compilador, reflejada en su nombre ( inglés compilar -- ensamblar, componer), era que también podía realizar enlaces (es decir, contenía dos partes: un traductor y un enlazador). Esto se debe al hecho de que la compilación separada y la vinculación como una etapa separada del ensamblaje surgieron mucho más tarde que la llegada de los compiladores. En este sentido, en lugar del término "compilador", a veces se usa el término "traductor" como su sinónimo: ya sea en la literatura antigua, o cuando se quiere enfatizar su capacidad para traducir un programa a código de máquina (y viceversa, usan el término "compilador" para enfatizar la capacidad de ensamblar a partir de muchos archivos uno).

Intérpretes.

Intérprete (lenguaje de programación) --

1) Un programa o herramienta técnica que realiza la interpretación.

2) El tipo de traductor que realiza el procesamiento y la ejecución operador por operador (comando por comando) del programa fuente o consulta (a diferencia de un compilador que traduce el programa completo sin ejecutarlo).

3) Un programa (a veces hardware) que analiza comandos o sentencias de programas y los ejecuta inmediatamente.

4) Un procesador de lenguaje que analiza el programa fuente línea por línea y simultáneamente realiza las acciones prescritas, y no forma un programa compilado en lenguaje máquina que se ejecuta posteriormente.

Tipos de intérprete.

intérprete sencillo analiza e inmediatamente ejecuta (interpretación misma) el programa comando por comando (o línea por línea), a medida que su código fuente llega a la entrada del intérprete. La ventaja de este enfoque es la respuesta instantánea. La desventaja es que dicho intérprete detecta errores en el texto del programa solo cuando se intenta ejecutar un comando (o línea) con un error.

Un intérprete de tipo compilador es un sistema de un compilador que traduce el código fuente de un programa en una representación intermedia, por ejemplo, bytecode o p-code, y el propio intérprete, que ejecuta el código intermedio resultante (la llamada máquina virtual ). La ventaja de tales sistemas es la mayor velocidad de ejecución del programa (debido a la eliminación del análisis del código fuente en un paso único y separado, y la minimización de este análisis en el intérprete). Desventajas: mayor requerimiento de recursos y requerimiento de un código fuente correcto. Se usa en lenguajes como Java, PHP, Python, Perl (se usa bytecode), REXX (se guarda el resultado del análisis del código fuente), así como en varios DBMS (se usa p-code).

Si el intérprete de tipo compilador se divide en componentes, se obtiene un compilador de lenguaje y un intérprete simple con análisis de código fuente minimizado. Además, el código fuente de dicho intérprete no tiene que estar en formato de texto o ser un código de bytes que solo este intérprete entienda, puede ser el código de máquina de alguna plataforma de hardware existente. Por ejemplo, máquinas virtuales como QEMU, Bochs, VMware incluyen intérpretes de código de máquina para procesadores de la familia x86.

Algunos intérpretes (por ejemplo, para Lisp, Scheme, Python, BASIC y otros) pueden funcionar en modo de diálogo o en el llamado bucle de lectura-cálculo-impresión (read-eval-print loop, REPL). En este modo, el intérprete lee una construcción de lenguaje completa (por ejemplo, s-expression en Lisp), la ejecuta, imprime los resultados y luego espera a que el usuario ingrese la siguiente construcción.

El lenguaje Forth es único, que puede funcionar tanto en los modos de interpretación como de compilación de datos de entrada, lo que le permite cambiar entre estos modos en cualquier momento, tanto durante la traducción del código fuente como mientras se ejecutan los programas.

También se debe tener en cuenta que los modos de interpretación se pueden encontrar no solo en el software, sino también en el hardware. Por lo tanto, muchos microprocesadores interpretan el código de máquina utilizando microprogramas integrados, y los procesadores de la familia x86, comenzando con Pentium (por ejemplo, en la arquitectura Intel P6), durante la ejecución del código de máquina, lo pretraducen a un formato interno (a una secuencia de microoperaciones).

El algoritmo de un intérprete simple:

2. analizar la instrucción y determinar las acciones apropiadas;

3. tomar las medidas apropiadas;

4. si no se alcanza la condición de terminación del programa, lea la siguiente instrucción y vaya al punto 2.

Ventajas y desventajas de los intérpretes.

ventajas:

1) Grande portabilidad de los programas interpretados: el programa se ejecutará en cualquier plataforma que tenga un intérprete adecuado.

2) Como regla general, medios más avanzados y visuales para diagnosticar errores en los códigos fuente.

3) Simplificación de la depuración de los códigos fuente del programa.

4) Tamaños de código más pequeños en comparación con el código de máquina obtenido después de compiladores convencionales.

Defectos:

1) Un programa interpretado no puede ejecutarse por separado sin un programa intérprete. El intérprete en sí puede ser muy compacto.

2) Un programa interpretado se ejecuta más lentamente porque el análisis intermedio del código fuente y la programación de su ejecución requieren tiempo adicional en comparación con la ejecución directa del código de máquina en el que se podría compilar el código fuente.

3) Prácticamente no hay optimización de código, lo que conlleva pérdidas adicionales en la velocidad de los programas interpretados.

Enlazador.

enlazador(también vinculador, vinculador) - un programa que realiza la vinculación - toma uno o más módulos de objetos como entrada y ensambla un módulo ejecutable a partir de ellos.

Para enlazar módulos, el enlazador usa las tablas de nombres creadas por el compilador en cada uno de los módulos objeto. Dichos nombres pueden ser de dos tipos:

1) Nombres definidos o exportados: funciones y variables definidas en un módulo determinado y proporcionadas para su uso por otros módulos.

2) Nombres no definidos o importados: funciones y variables a las que se refiere el módulo, pero no las define dentro de sí mismo.

El trabajo del enlazador es resolver las referencias a nombres no definidos en cada módulo. Para cada nombre importado, su definición se encuentra en otros módulos, la mención del nombre se reemplaza por su dirección.

El enlazador normalmente no realiza la verificación de tipo o conteo de los parámetros de procedimiento y función. Si es necesario combinar módulos de objetos de programas escritos en lenguajes fuertemente tipados, una utilidad adicional debe realizar las comprobaciones necesarias antes de iniciar el enlazador.

ensamblador.

ensamblador(del ensamblador inglés - ensamblador) - un programa de computadora, un compilador del código fuente de un programa escrito en lenguaje ensamblador en un programa en lenguaje de máquina.

Al igual que el propio lenguaje (ensamblador), los ensambladores tienden a ser específicos de una arquitectura, un sistema operativo y una variante de sintaxis particulares del lenguaje. Al mismo tiempo, existen ensambladores multiplataforma o completamente universales (más precisamente, universales limitados, porque es imposible escribir programas independientes del hardware en un lenguaje de bajo nivel) que pueden funcionar en diferentes plataformas y sistemas operativos. Entre estos últimos, también se puede destacar un grupo de ensambladores cruzados capaces de ensamblar código máquina y módulos ejecutables (archivos) para otras arquitecturas y sistemas operativos.

El ensamblaje puede no ser el primer o último paso en el camino para obtener un módulo de programa ejecutable. Por lo tanto, muchos compiladores de lenguajes de programación de alto nivel producen el resultado en forma de un programa en lenguaje ensamblador, que luego es procesado por el ensamblador. Además, el resultado del ensamblaje puede no ser un ejecutable, sino un módulo de objeto que contiene partes separadas y no adjuntas del código de la máquina y los datos del programa, del cual (o de varios módulos de objeto) en el futuro con la ayuda de un programa de vinculación (" enlazador") archivo ejecutable.

Un depurador o depurador es un módulo de entorno de desarrollo o una aplicación separada diseñada para encontrar errores en un programa. El depurador le permite recorrer el seguimiento, monitorear, establecer o cambiar los valores de las variables durante la ejecución del programa, establecer y eliminar puntos de interrupción o condiciones de interrupción, etc.

Lista de depuradores.

1) AQtime es un depurador comercial para aplicaciones creadas para .NET Framework versión 1.0, 1.1, 2.0, 3.0, 3.5 (incluidas las aplicaciones ASP.NET), así como para aplicaciones de Windows de 32 y 64 bits.

2) DTrace es un marco de seguimiento dinámico para Solaris, OpenSolaris, FreeBSD, Mac OS X y QNX.

3) Cerca eléctrica -- depurador de memoria.

4) GNU Debugger (GDB) es un depurador de programas del proyecto GNU.

5) IDA es un poderoso desensamblador y depurador de bajo nivel para sistemas operativos Windows y Linux.

6) Microsoft Visual Studio es un entorno de desarrollo de software que incluye herramientas de depuración de Microsoft Corporation.

7) OllyDbg es un depurador gratuito de bajo nivel para sistemas operativos de la familia Windows.

8) SoftICE es un depurador de bajo nivel para sistemas operativos de la familia Windows.

9) Sun Studio es un entorno de desarrollo de software que incluye el depurador dbx para los sistemas operativos Solaris y Linux de Sun Microsystems Corporation.

10) Dra. Watson es un depurador estándar de Windows que le permite crear volcados de memoria.

11) TotalView es uno de los depuradores comerciales para UNIX.

12) WinDbg es un depurador gratuito de Microsoft Corporation.

Generador de documentación: un programa o paquete de software que le permite recibir documentación destinada a programadores (documentación API) y/o usuarios finales del sistema, desde código fuente especialmente comentado y, en algunos casos, desde módulos ejecutables (obtenidos de la salida del compilador).

Normalmente, el generador analiza el código fuente del programa, destacando las construcciones sintácticas correspondientes a los objetos significativos del programa (tipos, clases y sus miembros/propiedades/métodos, procedimientos/funciones, etc.). El análisis también utiliza metainformación sobre los objetos del programa, presentados en forma de comentarios de documentación. En base a toda la información recopilada, se forma la documentación preparada, generalmente en uno de los formatos generalmente aceptados: HTML, HTMLHelp, PDF, RTF y otros.

Comentarios de la documentación.

Un comentario documental es un comentario especialmente diseñado