(II) EL Estado, los algoritmos y el lenguaje.
El lenguaje, inconsecuente/”no lógico”, origen de la toxicidad social.
La similitud entre la configuración y el diseño de “cerebros electrónicos” (que pasarían a llamarse computadores/ordenadores) con el propio cerebro/mente humanos, muestra la importancia del lenguaje, por medio del cual se hace posible introducir “datos” y cómo queremos que los procesen/ordenen (por medio de algoritmos) los sistemas de computación que están constituidos por elementos físicos (hardware) desde los que se introduce/accede/recoge el sistema datos/información y (software) que es su parte intangible (formada por programas, datos, información, documentación..).
“El Lenguaje lo es Todo” en el paralelismo entre el diseño de ordenadores y el lenguaje que emplean y el cerebro/mente humanos; cómo se desarrollaría el lenguaje informático y qué dificultades se tuvieron que superar para que estos sistemas de procesamientos de información lleguen a los niveles de prestaciones con que se muestran en nuestros días. Desde ahí podremos concebir cómo actúa el lenguaje en el ser humano desde la infancia y tal vez realizar una somera aproximación a los complejos problemas que representa recibir datos/ordenes que no se sujetan a un lenguaje coherente/lógico en la infancia y los resultados y consecuencia de ello – de manera análoga como sucediera en un sistema de computación avanzado “cuando el sistema diseñado pretende aprender de sí mismo”
El lenguaje de programación es el instrumento que permite al “programador”, desde el mundo “físico” (por medio de los elementos hardware del ordenador) acceder al “mundo intangible” del ordenador/computador (software) e introducir datos y ordenar acciones necesarias (algoritmos) para realizar un proyecto concreto – proyecto que también es concebido desde el mundo intangible de las ideas.
En la actualidad, la noción de
programación se encuentra muy asociada a la creación de aplicaciones de informática y videojuegos. En este sentido, es el proceso por el
cual una persona desarrolla un programa, valiéndose de una herramienta que le
permita escribir el código (el cual puede estar en uno o varios lenguajes,
como C++, Java y Python, entre muchos otros) y de otra que sea
capaz de “traducirlo” a lo que se conoce como lenguaje de máquina, que puede "comprender"
el microprocesador.1
La programación de computadoras es
el proceso de diseñar y construir un programa de
computadora ejecutable para lograr un resultado
de computación específico o
para realizar una tarea en particular. La programación implica tareas como
el análisis, la generación de algoritmos ,
la elaboración de perfiles de la
precisión y el consumo de recursos de los algoritmos, y la implementación de
algoritmos en un lenguaje de programación elegido (comúnmente
denominado codificación ). [1] [2] El código fuente de
un programa está escrito en uno o más lenguajes que son inteligibles para
los programadores ,
en lugar de código de máquina., que es ejecutado
directamente por la unidad central de procesamiento . El propósito de la
programación es encontrar una secuencia de instrucciones que automatizarán el
desempeño de una tarea (que puede ser tan compleja como un sistema
operativo ) en
una computadora , a menudo para resolver un problema dado. Por lo
tanto, la programación competente generalmente requiere experiencia en varios
temas diferentes, incluido el conocimiento del dominio de la aplicación , algoritmos
especializados y lógica formal.
Las tareas que acompañan y están relacionadas con la programación incluyen pruebas , depuración , mantenimiento del código fuente , implementación de sistemas de compilación y administración de artefactos derivados , como el código de máquina de programas de computadora. Estos pueden considerarse parte del proceso de programación, pero a menudo el término desarrollo de software se usa para este proceso más amplio con el término programación , implementación o codificación reservado para la escritura real de código. La ingeniería de software combina técnicas de ingeniería con prácticas de desarrollo de software.La ingeniería inversa es un proceso relacionado utilizado por diseñadores, analistas y programadores para comprender y recrear / volver a implementar. [3]
La clave en el lenguaje informático
(y también del humano) se halla en el
concepto “ejecutable” programa de
computadora ejecutable cuya ejecutabilidad dependerá del lenguaje empleado para introducir
los datos en el sistema y lenguaje de programación elegido que es implementado
con algoritmos; todo ello común mente denominado codificación. En informática.
En informática, un ejecutable o archivo
ejecutable, es tradicionalmente un archivo
binario, cuyo contenido
se interpreta por el ordenador como un programa.1
Generalmente, contiene instrucciones en código máquina de
un procesador en
concreto, pero también puede contener bytecode que requiera un intérprete para
ejecutarlo. Además, suele contener llamadas a funciones específicas de un sistema
operativo (llamadas al sistema).
Para que el sistema lo ejecute (como
un sistema operativo, firmware o cargador
de arranque ), un
archivo ejecutable debe ajustarse a la interfaz binaria de aplicación (ABI) del sistema. [6] En
interfaces simples, un archivo se ejecuta cargándolo en la memoria y saltando
al inicio del espacio de direcciones y ejecutándolo desde allí. En
interfaces más complicadas, los archivos ejecutables tienen metadatos
adicionales que especifican un punto
de entrada separado . Por
ejemplo, en ELF, el punto de entrada se especifica en el e_entry
campo del encabezado , que
especifica la dirección de memoria (virtual) en la que comenzar la
ejecución. En GCC ( colección de compiladores GNU ) este campo lo establece el
enlazador en función de la_start
símbolo.
Determinar si un archivo es ejecutable es sobre todo
una cuestión de convención. Unos sistemas operativos se basan en la extensión de archivo
(como la terminación .exe) y otros lo hacen leyendo
los metadatos (como los bits de permiso de
ejecución en Unix).3
Hay muchas maneras de entender cuando un programa no es
ejecutable por un computador, aunque en
principio el diseño del mismo programa se considere perfecto. Basta con que el
diseño del ordenador (software)
contenga errores de programación que no han sido depurados y se bloquee, o se
hallen en funcionamiento varios programas que no terminan de realizar las
operaciones que tienen encomendadas y consumen memoria y recursos del sistema;
o simplemente contenga un “virus” que
actúa cada vez que el sistema intenta activarse.
Para que se entienda sencillamente, un Virus es
información “maliciosa” que se recibe y entra en el sistema usando el lenguaje
de programación y alterando y bloqueando las funciones del computador,
destruyendo datos o tomando el control del sistema.
Un virus o virus
informáticon. 1 es un software que tiene por objetivo
alterar el funcionamiento normal de cualquier tipo de dispositivo informático,
sin el permiso o el conocimiento del usuario principalmente para lograr fines
maliciosos sobre el dispositivo. Los virus, habitualmente, reemplazan archivos ejecutables por otros infectados
con el código de
este. Los virus pueden destruir, de manera intencionada, los datos almacenados
en una computadora, aunque también existen otros más inofensivos, que solo
producen molestias o imprevistos.
Los virus
informáticos tienen básicamente la función de propagarse a través de un software, son muy nocivos y algunos
contienen además una carga dañina (payload) con distintos objetivos,
desde una simple broma hasta realizar daños importantes en los sistemas, o
bloquear las redes informáticas generando
tráfico inútil. El funcionamiento de un virus informático es conceptualmente
simple.
Se ejecuta un programa que
está infectado, en la mayoría de las ocasiones, por desconocimiento del usuario.
El código del virus
queda residente (alojado) en la memoria RAM de la computadora, incluso
cuando el programa que lo contenía haya terminado de ejecutar.
El virus toma
entonces el control de los servicios básicos del sistema operativo, infectando, de manera posterior,
archivos ejecutables que sean llamados para su ejecución. Finalmente se añade
el código del virus al programa infectado y se graba en el disco, con lo cual el proceso de replicado se
completa.
El código fuente es cualquier colección de código, con o sin comentarios , escrito utilizando un lenguaje de programación legible por humanos , generalmente como texto sin formato . El código fuente de un programa está especialmente diseñado para facilitar el trabajo de los programadores de computadoras , quienes especifican las acciones que debe realizar una computadora principalmente escribiendo el código fuente. El código fuente a menudo es transformado por un ensamblador o compilador en código de máquina binario que puede ser ejecutado por la computadora. El código de la máquina puede almacenarse para su ejecución. en otro momento. Alternativamente, el código fuente puede interpretarse y, por tanto, ejecutarse inmediatamente.
La mayor parte del software de
aplicación se distribuye en una forma que incluye
solo archivos ejecutables . Si
se incluyera el código fuente, sería útil para un usuario ,
programador o administrador del
sistema , cualquiera de los cuales podría desear estudiarlo
para conocer y/o modificar el programa.
El código fuente es una instancia de Code . En las comunicaciones y el procesamiento de la información.
Ell código es
un sistema de reglas para convertir información , como una letra , palabra , sonido, imagen o gesto,
en otra forma, a
veces abreviada o secreta , para la comunicación a través de
un canal de comunicación o almacenamiento en un almacenamiento. medio .
Un
ejemplo temprano es una invención del lenguaje , que permitió a las personas, a
través del habla, para comunicar lo que pensaron, vieron, escucharon o sintieron a los
demás. Pero el habla está limitada en su alcance porque el medio que
precisa para trasmitirse por lo que limita la audiencia a los presentes cuando se
pronuncia el discurso.
La
invención de la escritura , que convirtió el lenguaje
hablado en símbolos visuales , amplió el alcance de la
comunicación en el espacio y el tiempo .
La utilidad
del proceso de codificación es que convierte la información de
una fuente en símbolos para la comunicación o el almacenamiento; y
su decodificación (que es el proceso inverso), convierte los
símbolos de código en una forma que es accesible al destinatario cualquiera que
sea su lengua de origen o país donde viva.
Si miramos a nuestro alrededor podemos verificar que
la idea de código está con nosotros y nuestras sociedades de manera habitual;
como el código de un semáforo. Así mismo podemos observar también que los
códigos se hallan en la Naturaleza y actualmente los hemos expresados en
lenguaje de código código genético
o cómo también el idioma es un sistema de códigos empleado para la comunicación
por medio del lenguaje/idoma que usa el habla, los gestos, los signos y la
escritura idioma , e incluso las normas que nos
damos para convivir e interrelacionarnos se halla codificada código de derecho .
Cuando decimos que “El Lenguaje lo es Todo” nos
acercamos a la idea del nivel de calidad que debe tener el lenguaje para que
“opere” como se espera dentro de un sistema de computación.
Requisitos de calidad para programación.
Cualquiera que sea el
enfoque del desarrollo, el programa final debe satisfacer algunas propiedades
fundamentales. Las siguientes propiedades se encuentran entre las más
importantes: [16] [17]
·
Fiabilidad : la frecuencia con la
que los resultados de un programa son correctos. Esto depende de la
corrección conceptual de los algoritmos y la minimización de los errores de
programación, como errores en la gestión de recursos (p. Ej., Desbordamientos de búfer y condiciones de
carrera ) y errores lógicos (como errores de división por cero o errores de uno
por uno ).
·
Robustez : (Capacidad de un
programa para anticiparse a los errores) Qué tan bien un programa anticipa
problemas debido a errores (no errores). Esto incluye situaciones como
datos incorrectos, inapropiados o corruptos, falta de disponibilidad de los
recursos necesarios, como memoria, servicios del sistema operativo y conexiones
de red, errores del usuario y cortes de energía inesperados.
·
Usabilidad : la ergonomía
(Versatilidad y polivalencia de un programa): la facilidad con la que una
persona puede usar el programa para su propósito previsto o, en algunos casos,
incluso para fines inesperados. Estos problemas pueden hacer o deshacer su
éxito incluso independientemente de otros problemas. Esto implica una
amplia gama de elementos textuales, gráficos y, a veces, de hardware que
mejoran la claridad, la intuición, la cohesión y la integridad de la interfaz
de usuario de un programa.
·
Portabilidad (Transversalidad para
ser usado en distintos medios o sistemas operativos diferentes): la gama
de plataformas de sistema
operativo y hardware informático en las que se
puede compilar / interpretar y ejecutar el código
fuente de un programa . Esto depende de las diferencias en las
funciones de programación proporcionadas por las diferentes plataformas,
incluidos los recursos de hardware y sistema operativo, el comportamiento
esperado del hardware y el sistema operativo, y la disponibilidad de
compiladores específicos de la plataforma (y a veces bibliotecas) para el
lenguaje del código fuente.
·
Mantenibilidad : (Flexibilidad para
adaptarse a cambios y personalizaciones, versatilidad) la facilidad con la que
un programa puede ser modificado por sus desarrolladores actuales o futuros
para realizar mejoras o personalizarlo, corregir errores y agujeros de seguridad , o adaptarlo a
nuevos entornos. Las buenas prácticas [18] durante
el desarrollo inicial marcan la diferencia en este sentido. Esta cualidad
puede no ser directamente evidente para el usuario final, pero puede afectar
significativamente el destino de un programa a largo plazo.
·
Eficiencia / rendimiento : medida de los
recursos del sistema que consume un programa (tiempo de procesador, espacio de
memoria, dispositivos lentos como discos, ancho de banda de red y, hasta cierto
punto, incluso interacción del usuario): cuanto menos, mejor. Esto también
incluye una gestión cuidadosa de los recursos, por ejemplo, la limpieza
de archivos temporales y la eliminación
de pérdidas de memoria . Esto a menudo
se discute bajo la sombra de un lenguaje de programación elegido. Aunque
el lenguaje ciertamente afecta el rendimiento, incluso los lenguajes más
lentos, como Python, puede ejecutar
programas instantáneamente desde una perspectiva humana. La velocidad, el
uso de recursos y el rendimiento son importantes para los programas que atascan
el sistema, pero el uso eficiente del tiempo del programador también es
importante y está relacionado con el costo: más hardware puede ser más barato.
Cuando hablamos de Depurado, (limpeza) (revisado de los
códigos y algoritmos introducidos en el software), como operación esencial
en el desarrollo de un software establos hablando de errores de información
debidos al lenguaje empleado, donde unos lenguajes son más propicios a
establecer fallos.
Esta tarea de revisión del programa (el lenguaje empleado, la precisión e
interpretación del mismo) suele ser realizada por el propio sistema cuando
es diseñado para que “aprenda” desde los datos, algoritmos y procesos que ya
tiene instalados en la memoria.
Herramientas de análisis de código estático puede ayudar a detectar algunos
posibles problemas. Normalmente, el primer paso de la depuración es intentar
reproducir el problema.
Se pone como ejemplo el desarrollo de un software
para el mercado que son introducidos en sistemas para diversión o actividades
profesionales a realizar con el computador.
La depuración es una
tarea muy importante en el proceso de desarrollo de software, ya que tener
defectos en un programa puede tener consecuencias importantes para sus
usuarios. Algunos lenguajes son más propensos a algunos tipos de fallas
porque su especificación no requiere que los compiladores realicen tantas
comprobaciones como otros lenguajes. El uso de una herramienta
de análisis de
código estático puede ayudar a detectar algunos posibles
problemas. Normalmente, el primer paso de la depuración es intentar
reproducir el problema. Esta puede ser una tarea no trivial, por ejemplo,
como ocurre con los procesos paralelos o algunos errores de software inusuales. Además,
el entorno de usuario específico y el historial de uso pueden dificultar la
reproducción del problema.
Una vez que se
reproduce el error, es posible que sea necesario simplificar la entrada del
programa para facilitar la depuración. Por ejemplo, cuando un error en un
compilador puede hacer que se bloquee al analizar un archivo fuente grande, una
simplificación del caso de prueba que dé como resultado solo unas
pocas líneas del archivo fuente original puede ser suficiente para reproducir
el mismo bloqueo. Se necesita prueba y error / divide y vencerás: el
programador intentará eliminar algunas partes del caso de prueba original y
comprobará si el problema persiste. Al depurar el problema en una GUI, el
programador puede intentar omitir alguna interacción del usuario de la
descripción original del problema y comprobar si las acciones restantes son
suficientes para que aparezcan errores. La creación de scripts y los puntos de interrupción también son parte
de este proceso.
El procedimiento de revisión es similar al análisis
que las personas realizamos de los datos que hemos ido adquiriendo desde la
infancia y los procedimientos que hemos usados para aplicarlos y combinarlos
según el conjunto de algoritmos de naturaleza familiar/social/proceso educativo
que hemos tenido; y para ello empleamos las relaciones sociales (en intercambio y verificación de nuestros
datos y algoritmos) y las interactuaciones en la sociedad (para verificar la compatibilidad y los
resultados de la “programación” adquirida desde la infancia y localizar errores
y fallos para su subsanación).
Tanto en el mundo de la programación (como en la vida de los seres humanos), la
depuración y revisión de errores es una tarea muy importante en el proceso de
desarrollo de software (de datos y
procesos algorítmicos para realizar tareas); errores que emanan del
lenguaje (en el caso de los humanos
alcanza el habla, en todas sus modalidades y versatilidades en las que se
incorporan gestos, códigos, escritura, lenguaje no verbal…y otras formas de
lenguaje como castigos, amenazas, etc) ya que tener defectos en un programa
puede tener consecuencias importantes para sus usuarios.
La coherencia del lenguaje, su precisión, su lógica…
resultan esenciales para dotar de datos y algoritmos que permitirán recibir
otros “mensajes con datos y algoritmos” del mundo exterior e incorporarlos en
la “memoria” adecuadamente para su uso en ese proceso de auto-aprendizaje (que existe en el mundo de la computación).
Desde esta idea podríamos entender el perjuicio que
esta pandemia causa a la gente más joven y a los niños, pues precisan de las
relaciones interpersonales para determinar la certeza de sus “datos y
algoritmos familiares” estableciendo afinidades y amigos y con ello la
fiabilidad, viabilidad y confianza en su propia personalidad y singularidad
para “manejarse” socialmente.
Cuando el lenguaje es explícitamente “I-lógico” (como muestran algunos relaciones no solo sociales o con empresas
para solucionar problemas en atención al cliente, que incluso en determinadas
situaciones alcanza la esfera de la
Administración del Estado) podemos estar en presencia de un programa
concebido como “virus” que se activa para actuar contra ciertos ciudadanos
concebidos como molestos, por alguna razón, a los que se pretende “volver
locos” mediante errores de una Administración que se muestra así inaccesible a
rectificar actuaciones erróneas o lesivas contra los derechos de una persona o
un conjunto de personas.
Le estrategia del lenguaje i-lógico formaría parte
de “un recurso” cuando no se quisiera reconocer un error o fallo grave y el
perjuicio que causa; (es posible concebir
estrategias de este tipo cuando se intentan resolver errores muy graves y
reiterados en la lectura de contadores –antes analógicos - de manera reiterada,
prolongadas en el tiempo y de las cuales, a veces, se puede considerar
intencionalidad).
Y también puede ocurrir una situación similar cuando una persona en su rol de educador (de rol familiar, o de formación reglada obligatoria, o de papel de psicoterapeuta) usara alternativamente lenguaje “lógico/ilógico” propio de relaciones que sostienen prejuicio/estigmatización, que determinarán sin duda un bloqueo en la persona así tratada.
Siendo que la naturaleza humana es
versátil, es concebible que en las relaciones sociales el lenguaje i-lógico e
inconsecuente (que haría inviable la comunicación, como demuestra la
informática) sea un recurso manifiesto de adversidad o castigo hacia una
persona o grupo de personas por razones que no se quieren expresar abiertamente
de manera sincera - ni al así tratado y no siempre al entorno social que
contempla y ante quien se justifica el trato dado a veces con silencio. Es así
donde entraríamos en la idea de que se hubiera confeccionado una “estrategia
social”, un programa específico de lenguaje i-lógico, destinado, a veces, a
hacer daño (como una especie de venganza) similares a los “virus informáticos”,
cuyo objetivo sería destruir datos y hacer inviables algoritmos construidos
desde la creencia de la existencia de la bondad que sustenta derechos tal y
como señalaría genéricamente la Constitución (es decir destruyendo vidas) y
cuyo objetivo final puede incluso ir más allá (como análogamente hacen los
piratas informáticos cuando atacan los datos de un banco, o capturan
información y documentos de personas o empresas; y con ello amenazan su
existencia): Obtener un rédito, un beneficio.
De alguna manera la maldad por maldad no es
concebible sino tiene un origen y una finalidad lógica, por mucho que emplee de
medios ilógicos para sus fines.
No hay comentarios:
Publicar un comentario