Título del proyecto: Recurso y C
Introducción:
cuando estudiamos funciones recursivas, todos deseamos poder visualizarlas y verlas ejecutarse paso a paso y luego rebobinar y volver a ejecutar el código. De esta forma, podemos obtener mejores conocimientos sobre cómo funcionan las funciones recursivas y cuándo se detiene. Esto también ayudará a los profesores a explicar los conceptos básicos de la recursividad de una mejor manera. La aplicación que creamos ayuda a hacer eso. Esta característica también podría integrarse en el sitio web GeeksforGeeks.
Marco conceptual:
Recurse y C canalizarán casos de prueba personalizados a través de su código, analizarán el árbol de llamadas de su función y lo visualizarán . Puede ver cómo sucede en tiempo real y también rebobinar o seguir el proceso paso a paso. También le indicará el padre y los hijos del Node seleccionado. Varios ganchos/eventos de comportamiento se transmiten desde el entorno de ejecución emulado y se asignan a una secuencia de marcos para su visualización.
También tiene la función de guardar un fragmento de código y cargar ese fragmento de código para su visualización. Esto ayuda con la reutilización. Intentamos mantener la base del código modular.
Como funciona esto:
- Primero inicie sesión o cree una cuenta después de iniciar la configuración del proyecto. Después de crear una cuenta, inicie sesión a través de esa cuenta.
- Elegimos JavaScript para este proyecto porque es fácil de entender y trabajar con él. El usuario escribe un módulo de JavaScript y luego exporta la función de punto de entrada a una variable de destino.
- Luego cargamos la función y su árbol de sintaxis abstracta (AST) en un entorno de ejecución del lado del navegador para realizar una reescritura de términos en reglas recursivas para pasar por nuestro proxy. Esto no altera el flujo de ejecución normal.
- Los eventos de comportamiento marcados se transmiten a un módulo visualizador (en TypeScript).
- Las acciones que se han procesado se transforman luego en una estructura de datos renderizable (AppGraph) y los cambios en esa estructura de datos se transmiten al componente de reproducción, que interpreta eventos y aplica cambios diferenciales al modelo de datos renderizable para real- actualizaciones de tiempo.
- Un patrón de controlador de vista de modelo (MVC) expone los controles al componente de reproducción para rebobinar, animar y recorrer los eventos.
Diagramas:
Herramientas utilizadas:
- JavaScript vainilla
- HTML
- CSS
- servidor nginx
- AngularJS
- d3.js
- NodeJs
- TypeScript
Aplicación:
los profesores pueden utilizar este proyecto para introducir a los estudiantes a la recursividad mediante la visualización del flujo del código. Los estudiantes también pueden utilizarlo ellos mismos para probar funciones y aprender a trabajar paso a paso utilizando gráficos hermosos, nítidos y claros que se pueden seguir, volver a trazar y comprender fácilmente. Esto también se puede integrar como una función en el sitio web de GeeksforGeeks .
Enlace al repositorio de GitHub: https://github.com/sayak119/Recurse-and-C
Enlace de video de YouTube: Video de demostración
Miembros del equipo:
- Sayak Kundú
- Kanav Gupta
- Palash Agarwal
- madhurgarg
Nota: esta idea de proyecto es una contribución para ProGeek Cup 2.0: una competencia de proyectos de GeeksforGeeks .
Publicación traducida automáticamente
Artículo escrito por SayakKundu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA