Decoradores tipo Python para funciones en C Sharp utilizando atributos y la API de Roslyn
Palabras clave:
Metaprogramación, Roslyn, Python, Decoradores, C SharpResumen
Python se ha convertido en los últimos años en uno de los lenguajes de programación más populares. Cuando la capacidad de Python para interceptar llamadas a función se combina con su declaratividad, a través de los decoradores podemos tener una manera perfecta de inyectar funcionalidad adicional a código existente. Implementar decoradores en lenguajes de tipado dinámico como Python es sencillo, pero para los lenguajes con tipado estático como C Sharp o Java, este tipo de sustitución sería imposible en tiempo de ejecución. Los trabajos anteriores para proporcionar a estos lenguajes de esta funcionalidad se basaron en el uso de un enfoque de byte-code weaving. Este trabajo propone en su lugar utilizar un enfoque de source-code weaving en C Sharp utilizando la API de su compilador actual (Roslyn). Siguiendo este enfoque, se presenta un algoritmo para tener el efecto de decoración tipo Python para funciones en C Sharp. Se realizaron experimentos para comparar la eficiencia de la propuesta con respecto a una herramienta comercial obteniéndose buenos resultados.Descargas
Citas
Joseph Albahari and Ben Albahari. C# 7.0 in a Nutshell: The Definitive Reference, chapter 3, pages 95–96. O’Reilly Media, 2017.
Joseph Albahari and Ben Albahari. C# 7.0 in a Nutshell: The Definitive Reference, chapter 6, pages 276277. O’Reilly Media, 2017.
Jason Bock. .NET Development Using the Compiler API. Apress, 2016.
Steve Fenton. Pro TypeScript Application-Scale JavaScript Development, chapter 1, pages 76–81. Apress, Berkeley, CA, 2nd edition, 2018.
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-oriented Software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1995.
GitHub. dotnet/roslyn: The roslyn .net compiler provides c# and visual basic languages with rich code analysis apis., 2019.
Joe Kunk. Aspect-oriented programming with postsharp.
Eric Lippert. Hiring for roslyn, 2010.
Neil McAllister. Microsoft’s roslyn: Reinventing the compiler as we know it, 2011.
Microsoft. What’s new in visual studio 2015, 2014.
Descargas
Publicado
Versiones
- 2019-12-12 (5)
- 2025-04-29 (4)
- 2025-04-29 (3)
- 2024-03-28 (2)
- 2024-03-26 (1)
Cómo citar
Número
Sección
Licencia
Derechos de autor 2019 Ciencias Matemáticas

Esta obra está bajo una licencia internacional Creative Commons Atribución 4.0.
Esta licencia permite copiar y redistribuir el material en cualquier medio o formato bajo los siguientes términos: se debe dar crédito de manera adecuada, no se puede hacer uso del material con propósitos comerciales, y si remezcla, transforma o crea a partir del material, no podrá distribuir el material modificado. Bajo la licencia mencionada, los autores mantienen los derechos de autor de su trabajo.

