Autor Tema: Pequeño Aporte sobre el Ensamblador y el uso de términos comunes  (Leído 2294 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Hace tiempo que vengo con este post en mente, de hecho lo he dicho en algún momento cuando escribo algun post de respuesta.  

Lo que quiero es aportar un granito de arena a que hablemos un poco con mayor propiedad respecto a ciertos temas.  En la jerga se suele confundir un poco el castellano con el inglés llegando en ocasiones a errores de ortografía o de "spanglish" producto de que somos hispano parlanetes pero a su vez convivimos todo el tiempo con términos en inglés.

Mi aporte acá se refiere a algo que está muy encarnado en el foro y que tiene que ver con el lenguaje Ensamblador tanto en inglés como en castellano.

Tal vez sea de nuestro amigo todopic tal vez no (de hecho creo que es uno  de los creadores del foro o tal vez el único creador, la verdad lo desconozco pero apoyo la idea ) , la cuestión es que considero que está mal el término y no me parece bien enseñar con algo que está mal.

Por supuesto me tomo la libertad de escribir este mail suponiendo en que Norberto no se ofenderá por lo que vengo aquí a plantear, porque precisamente pretendo dar un aporte a que hablemos con mayor precisión entre nosotros mismos.  Esto lo hago porque considero que las personas que estamos en este rubro, con el correr de los años hemos aprendido a perder el orgullo y a aprender de todos quienes nos rodean ya que no es fácil saber de todo! y nos vamos haciendo abiertos de mente frente a las sugerencias y/o aportes, después uno decide si le parecen correctas o no.  De ahí que

La confusión es la siguiente:

En inglés cuando hablamos de assembly hablamos del lenguaje.  Cuando hablamos de assembler hablamos del compilador de assembly a código máquina.

Assembler es el compilador, mientras que assembly es el lenguaje.  Entonces cuando hablamos de una rutina en assembler... estamos hablando mal.  Debemos decir "una rutina en assembly" o bien "una rutina para compilar con el assembler".

En castellano el término se funde en la misma palabra.
Hablamos de ensamblador para el lenguaje y también se lo denomina Ensamblador al compilador del lenguaje al código máquina.


Entonces la propuesta es corregir el subforo dedicado al Ensamblador o al Assembly.

Donde dice: Almacen del Asembler. librerias en asembler entiendo que debiera decir algo como lo siguiente:


- Almacén para Ensamblador.  Librerías en lenguaje Ensamblador

Si queremos permitirnos el uso del Spanglish,(notar la doble s)
- Almacén para el Assembler.  Librerías en Assembly.
 
Lo que se pretende es almacenar o guardar librerías o código en el lenguaje ensamblador para ser compiladas con el ensamblador.  Entonces se almacena "PARA" dicho compilador.


Buscando algo para que alguno quiera leer del tema, encontré esto en wikipedia que sirve para apoyar mi idea.

http://es.wikipedia.org/wiki/Ensamblador

http://en.wikipedia.org/wiki/Assembly_language


Y Norberto si quieres puedes tomar el consejo para tu sitio web también, donde pones el link muy bonito con ese chip que dice "Asembler", cambiarlo por "Assembler" o bien "Assembly" o "Ensamblador".

PD: la verdad no sabía donde poner este link, porque sería en algún lugar donde sean "sugerencias o ideas" pero bueno dado que no encontré tal link lo pongo acá.  
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
RE: Pequeño Aporte sobre el Ensamblador y el uso de términos comunes
« Respuesta #1 en: 05 de Marzo de 2006, 12:05:00 »
Amigo Maunix:

Muy interesnte tu propuesta y digna de tener en cuenta. pero creo que si hay que realizar algún cambio de nomenclatura debemos ser muy cuidadosos a la hora de exponer los términos implicados:

1º Assembler no es un compilador (Compiler).

Hay compiladores de lenguaje Pascal, de Basic, de Algol, de Fortran, de Lisp, de Forth, de ADA, de COBOL, incluso de lenguaje C, pero no hay ningún compilador de Assembly ni ha habido nunca, ni creo que llegue ha haberlo jamás.

El Assembler es un programa Ensamblador: en el sentido de ensamblar, unir una tras otra piezas de ensamblaje, habiendo una relación biunívoca, directa y única, entre el nemonico utilizado, en lenguaje simbólico humano, y la instrucción máquina ensamblada que ha de generar dicho ensamblador.

Esta característica del Ensamblador no es compartida por el Compilador. En éste se produce la acción de compilar, en el sentido de reunir en un solo cuerpo partes diversas realizando los puentes necesarios entre ellas para su total integración.

En Assembler BSF implica 0xFA siempre y asimismo 0xFA implica BSF siempre. Assembler solo traducirá BSF por 0xFA y lo colocará tras la anterior instrucción ensamblada. En cualquier Compiler While(condición) generará la apilación del conjunto de instrucciones dependientes de condición y que variará en función de otras partes dependientes y dependidas de él.

Por eso hay cientos de Des-Ensambladores y ningún Des-Compilador que merezca ese nombre.

2º Sintacticamente Assembly y Assembler son Ensamblado y Ensamblador.

Realmente la traducción estricta de Assembly es Asamblea o Reunión; pero esto es sinónimo de lo que he expresado mas arriba de Ensamblado, Unido uno tras otro, y Assembler es el agente ensamblador o que ensambla.

Asi si hablamos de Assembly Languaje estamos diciendo Lenguaje Ensamblado para colocarlo en la categoría de los Assemblers por contraposición a los Compilers.

Esto es similar al uso, en inglés, de Worker (trabajador) es quien hace Work(trabajo), como Farmer (granjero) es quien hacer Farm (granja) y Tailor (Sastre) es quien hace Tail (costura).

Si algunos, en español, decimos ensamblador para el lenguaje y para el ensamblador estamos hablando apropiadamente en español, ya que en español no tenemos dicha construcción sobre el sustantivo y el que-hace-sustantivo.

En español solo diferenciamos entre la acción generadora, ensamblador, y lo generado, ensamblado que en este caso se lo aplicamos al código maquina final.

Por lo tanto no veo tan erróneo la descripción del Almacen del Assembler ya que se define perfectamente como el Almacén de " lo que le hace falta al que desea usar el Assembler"  que evidentemente es Codigo Assembly.

Si pusiesemos Almacen del Ensamblador haríamos referencia a ambos, lenguaje y ensamblador y hasta si me apuras al humano que usa ambos.

3º Si es en Inglés que sea en Inglés.

Si se opta por la nomenclatura inglesa estoy totalmente de acuerdo en añadir una s a Asembler y dejarlo como God manda: Assembler.

Un cordial saludo.

Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Pequeño Aporte sobre el Ensamblador y el uso de términos comunes
« Respuesta #2 en: 05 de Marzo de 2006, 21:28:00 »
Amigo Diego, me alegro te hayas sumado a la causa.  

La verdad es cierto, acepto tu corrección respecto a lo de ensamblador y compilador.  Cometí el error de poner compilador al ensamblador, debí haber releído mejor mi texto antes de postearlo, pero es que cuando el ensamblador (como el de microchip) te interpreta macros tan complicados,  con constantes y funciones de un grado de complicacion importante, se hace dificil pensar en que sea solo un ensamblador.  De hecho muchos de los macros que he hecho, o que he visto en el foro de Microchip (forum.microchip.com) no tienen nada que envidiarle al lenguaje C, y ni hablar si encima pensamos en un compilador como el CCS que se las pasa declarando "defines" para poder solucionar las cosas, al igual que uno hace con el lenguaje ensamblador.  Terminan siendo casi iguales (lo cual no justifica que yo lo haya escrito mal D)

No estoy tan de acuerdo en las traducciones "literales" del inglés al castellano, ya que muchas veces no reflejan lo que uno termina usando.  Es como querer traducir "hardware" , la verdad las traducciones son pasmosas cuando hablan de ferretería... Uno termina adoptando la palabra Hardware y la asocia directamente al concepto de los "fierros" , de las placas, microcontroladores, microprocesadores, fuentes de alimentacion, discos duros,  etc!

A mi modo de entender "assembly language" no se traduce como "Ensamblado" sino algo así como "lenguaje para ensamblar" o "lenguaje de cómo ensamblar".  La Real Academia Española lo toma como "Lenguaje Ensamblador", porque es el lenguaje que "define el ensamble" es decir las reglas de como se generará finalmente el código máquina.

En nuestro caso,  el "Assembler" es el programa que traducirá el código "assembly" a código máquina.  Uno en definitiva termina almacenando "código en assembly language" que será utilizado CON el assember o para ser interpretado con el assembler.   En este caso creo que no hay confusión, cuando decimos assembler uno de movida interpreta que es el "programa ensamblador" y no la persona que ejecutará la tarea.  

Uno se termina mareando cuando todas las palabras significan mas o menos lo mismo, por lo cual quisiera traer un paralelo con otra cosa similar.

Imaginemos que queremos almacenar planillas de Excel, que tienen diversas utilidades. Algunas con formatos de facturas, otras que sirvan para pasar las notas de los alumnos,  etc.  Estas son planillas en lenguaje excel, que serán utilizadas con el Programa Excel.  Entonces, son planillas PARA el Excel... no planillas de excel.  Excel no tiene nada, Excel no es una persona, Excel es un "software".   Lo más correcto es decir Planillas para el Excel aunque esté aceptado decir "Planillas de Excel", no se si me explico.


Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado marmatar

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1220
    • MSTools
Re: Pequeño Aporte sobre el Ensamblador y el uso de términos comunes
« Respuesta #3 en: 13 de Abril de 2006, 21:02:37 »
Me encantan éstas discuciones porque no aportan absolutamente nada... lo he aprendido por experiencia, aquí mismo en el foro.
maunix... déjame decierte que CADA UNO LE LLAMA A LAS COSAS COMO LAS APRENDE, y solo las cambia por considerar que en el código de expresión de un grupo determinado de pares le entienden mejor o peor. Nunca podrás enseñar a alguien algo que no necesita ser cambiado.
No creo que algo como ésto aporte mucho al aprendizaje en el aspecto técnico ni humano del foro, ya he intentado en alguna oportunidad "corregir" expresiones sin éxito y me han dejado ver (creo yo con toda razón) que cada quien se expresa como le parece y como lo ha aprendido en su medio.
Conclusión, si te sirve de algo mi experiencia... insistir cuando hay resistencia solo provoca una mala predisposición.
No está mal corregir, cuando el otro es permeable a ser corregido... y siempre de una manera amable, insistir de forma irónica suena a pedante para muchos.

Un abrazo a todos...
Gasten tiempo en teclear cosas productivas y no en pelearse, no vale la pena... ya he estado de ambos lados en otras oportunidades y hay que aceptar cuando se está equivocado o no hay receptividad en nuestra opinion.

marmatar
Lo posible ya está hecho, entonces hagamos lo imposible - Platón


 

anything