Articles of compiler construction

Diferencias entre la comstackción Just in Time y On Stack Replacement

Ambos hacen más o menos lo mismo. Identifique que el método está activo y compílelo en lugar de interpretarlo. Con OSR, simplemente pasa a la versión comstackda inmediatamente después de que se comstack, a diferencia de JIT, donde se llama al código comstackdo cuando se llama al método por segunda vez. Aparte de esto, ¿hay […]

¿Cómo se maneja la liberación para las propiedades de retención @synthesized?

Tengo algunas preguntas sobre las propiedades sintetizadas en Objective-C. La lista completa sigue, pero la pregunta básica es esta: ¿cómo garantiza el comstackdor que los ivars para las propiedades sintetizadas se lanzan correctamente, aunque mi código puede incluir o no métodos de publicación en dealloc? Nota: Decidí no publicar estas preguntas como individuales porque están […]

¿Hay alguna manera de comstackr ARM en lugar de Thumb en Xcode 4?

Apple recomienda comstackr para ARM en lugar de pulgar si hay muchas operaciones de coma flotante. Toda mi aplicación es casi una gran operación de coma flotante. Esto es lo que dicen en la Guía de flujo de trabajo de desarrollo de aplicaciones de iOS: Los dispositivos iOS admiten dos conjuntos de instrucciones, ARM y […]

Orden de evaluación inesperado (¿error del comstackdor?)

Posible duplicado: Comportamiento indefinido y puntos de secuencia No estoy seguro de si esto es un error de gcc o no, así que le preguntaré: unsigned int n = 0; std::cout << n++ << n << ++n; gcc da el resultado extremadamente extraño: “122” que AFAICT es imposible. Como << se deja asociativo, debería ser […]

¿Por qué y cómo C # permite acceder a variables privadas fuera de la clase cuando está dentro de la misma clase contenedora?

No sé si la pregunta es suficientemente descriptiva, pero ¿por qué y cómo existe este comportamiento ?: public class Layer { public string Name { get; set; } private IEnumerable children; public IEnumerable Children { get { return this.children.Where ( c => c.Name != null ).Select ( c => c ); } set { this.children […]

¿El comstackdor de C # es lo suficientemente inteligente como para optimizar este código?

Por favor, ignore la legibilidad del código en esta pregunta. En términos de rendimiento, debería escribirse el siguiente código así: int maxResults = criteria.MaxResults; if (maxResults > 0) { while (accounts.Count > maxResults) accounts.RemoveAt(maxResults); } o así: if (criteria.MaxResults > 0) { while (accounts.Count > criteria.MaxResults) accounts.RemoveAt(criteria.MaxResults); } ? Editar: criteria es una class , […]

Operaciones atómicas, std :: atomic y ordenación de escrituras

GCC comstack esto: #include std::atomic a; int b(0); void func() { b = 2; a = 1; } a esto: func(): mov DWORD PTR b[rip], 2 mov DWORD PTR a[rip], 1 mfence ret Entonces, para aclararme las cosas: Cualquier otro hilo que lea ‘a’ como 1 garantiza que ‘b’ sea 2. ¿Por qué ocurre el […]

¿Hay alguna manera de usar gcc para convertir C en MIPS?

Completé una conversión de C a MIPS para una clase, y quiero verificarlo contra el ensamblaje. He escuchado que hay una forma de configurar gcc para que pueda convertir el código C a la architecture MIPS en lugar de a la architecture x86 (los usuarios de mi computadora son un procesador Intel i5) e imprime […]

Detalles de instanciación de plantilla de comstackdores GCC y MS

¿Podría alguien proporcionar una comparación o detalles específicos de cómo se maneja la instanciación de la plantilla en tiempo de comstackción y / o enlace en los comstackdores GCC y MS? ¿Es este proceso diferente en el contexto de bibliotecas estáticas, bibliotecas compartidas y ejecutables? Encontré este documento sobre cómo lo maneja GCC, pero no […]

¿Cuándo / Cómo carga Linux las bibliotecas compartidas en el espacio de direcciones?

Mi pregunta es la siguiente: ¿Cuándo se especifica la dirección de los objetos compartidos en los progtwigs? Durante la vinculación? ¿Cargando? Si quisiera encontrar la dirección de memoria del comando del system dentro de libc dentro de mi progtwig, podría encontrarla fácilmente en gdb , pero ¿qué pasa si no quiero incluir el progtwig en […]