¿Existe una herramienta de revisión de código para Natural?

Mi empresa, Semantic Designs, fabrica muchos tipos de herramientas de ingeniería de software para muchos lenguajes informáticos, incluido (Software AG) Natural.

Tenemos dos que pueden ser útiles para “revisar” el código fuente natural.

Si por revisión, quiere decir que compara una nueva versión de un archivo con una anterior, podría ejecutar diff (unix) simple. Tal diferencia muestra cambios en términos de líneas fuente modificadas. O puede ejecutar nuestra herramienta SmartDifferencer, que muestra cambios en términos de elementos del lenguaje (identificador, expresión, declaración, bloque, función, …) ignorando los espacios en blanco y los cambios de comentarios, en términos (um) naturales para las tareas de edición de código: insertar, eliminar , copiar, duplicar, mover, reemplazar, renombrar, por ejemplo, “reemplazar expresión en la línea 12 columna 34 con expresión de la línea 26 columna 18” opcionalmente junto con la expresión misma. Esto hace que sea mucho más fácil comprender qué cambios se realizaron en el archivo y, por lo tanto, permite una revisión más efectiva. El sitio no muestra un ejemplo de SmartDifferencer aplicado a Natural, pero sí muestra un ejemplo para COBOL que es bastante similar. Por desgracia, todavía no ofrece una herramienta de comparación gráfica de lado a lado (sin embargo, estamos trabajando en eso, vea el ejemplo de COBOL para una versión gráfica de COBOL en Eclipse).

Si por revisión, quiere decir “buscar y examinar el código fuente”,

puede considerar nuestro Motor de búsqueda de código fuente (SCSE), una especie de “super grep”. SCSE ofrece una GUI para buscar e inspeccionar código, a través de una base de código grande (típica de aplicaciones naturales). Acepta consultas en términos de átomos de lenguaje y restricciones / comodines / expresiones regulares sobre valores literales, encuentra todas las coincidencias en la base del código (como un código de Google), le permite seleccionar de la lista de resultados y le muestra el archivo que contiene el resultado seleccionado , resaltado Una consulta de búsqueda típica podría ser:

‘MOVER’ S = / PART \ -? NUMBER / ‘TO’ I = * BUFFER *

Esto encuentra cualquier comando MOVE que mueve una cadena literal (S =) que contiene (regexp / … /) el texto PARTNUMBER o PART-NUMBER a algún identificador (I =) cuyo nombre contiene (comodín) la palabra BUFFER. (Las consultas SCSE usan comillas en tokens literales del idioma, por ejemplo, palabras clave y operadores).

SCSE es más fácil de usar que grep, porque las consultas se expresan en términos del idioma de origen y no tiene que pensar mucho sobre cómo escribir una consulta, y no se molesta ni confunde con el espacio en blanco del lenguaje / saltos de línea / comentarios Produce menos falsos positivos que grep, porque una restricción se aplica con precisión y facilidad al tipo correcto de átomo (identificador, número, cadena o comentario), mientras que con grep es muy fácil encontrar resultados en el lugar equivocado (por ejemplo, el letras BUFFER en un comentario). Es más rápido que grep porque utiliza un índice que construye para la base del código que proporciona un tiempo de respuesta de 1 a 2 segundos en miles de archivos / millones de líneas; grep tiene que leer cada archivo en cada búsqueda, lo que significa decenas a cientos de segundos de retraso, uno finalmente obtiene una expresión regular legal; peor aún, a menudo pierdes la expresión regular y tienes que escribirla varias veces para que se acerque a la derecha. SCSE es más potente y más fácil de usar que grep porque puedes escribir consultas descuidadas que “encuentran demasiado” y luego literalmente restan resultados de consultas simples para cosas que no quieres ver. Si insiste, SCSE también realizará búsquedas grep completas en consultas que son expresiones regulares puras, pero aquí su velocidad es la misma que grep porque tiene que escanear los archivos; Sin embargo, la GUI es enormemente más agradable.

SCSE se encargará, en la misma sesión, de varios idiomas (para Natural, JCL y COBOL tienden a estar involucrados) tratando cada uno de acuerdo con su sintaxis léxica. SCSE puede operar en archivos fuente EBCDIC y / o ASCII (o cualquiera de las muchas codificaciones de caracteres), o una mezcla de cualquier codificación.

More Interesting

¿Qué hace que las interfaces sean tan flexibles en Golang?

¿Qué tipo de equipo y software debería estar disponible en el laboratorio * perfecto * para el desarrollo de sistemas integrados?

¿Cómo cambiará el mercado laboral para los ingenieros de software con el tiempo?

¿Cuál es el mejor camino que debe tomar un estudiante de secundaria para poder trabajar en una empresa como Facebook, Google o Apple como ingeniero o diseñador?

¿Cuál será el destino de los ingenieros de software en India después de 4 a 5 años? Todos los países están prohibiendo a los ingenieros de TI, primero los EE. UU., Malasia y ahora es el Reino Unido.

¿Qué hace un diseñador de UX después de que la ingeniería comienza el proyecto?

¿Cuáles son las herramientas de venta de entradas utilizadas en las empresas de software?

¿Qué tan bueno es CS50 en comparación con un curso universitario real sobre informática?

¿Cómo impacta el 'Naming of Things' en un desarrollo eficiente del código fuente?

Me gustaría obtener un título en enfermería con especialización en ingeniería de software. ¿Es esta una buena opción o debería cambiar mi menor?

¿Cuáles son los títulos requeridos para la ingeniería de software?

¿Es posible con una gran cantidad de trabajo hacer un programa de traducción perfecto?

¿Qué cosas 'específicamente Java' debería revisar para prepararme para una entrevista de puesto de desarrollador de software (centrada en Java)?

¿Qué libro educativo o libro de texto cambió tu vida?

Redes de área local: ¿Es mejor crear aplicaciones en una LAN que crear un software nativo?