CodePod: A Language-Agnostic Hierarchical Scoping System for Interactive Development

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Li, Hebi, Bao, Forrest Sheng, Xiao, Qi, Tian, Jin
Formato: Preprint
Publicado: 2023
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866909712499343360
author Li, Hebi
Bao, Forrest Sheng
Xiao, Qi
Tian, Jin
author_facet Li, Hebi
Bao, Forrest Sheng
Xiao, Qi
Tian, Jin
contents Interactive development environments like Jupyter Notebooks enable incremental coding through cells with immediate feedback, but their linear structure and global namespace limit scalability for large software projects. We present CodePod, a hierarchical extension of Jupyter that introduces a novel scoped execution model with formal semantics. Our key contribution is a language-agnostic runtime system that performs source-level transformations to implement hierarchical scoping rules, enabling true incremental evaluation across nested modules without requiring language-specific kernel modifications. We formalize the scoping semantics as a mathematical framework with precise visibility relations and prove key properties including uniqueness of symbol resolution and correctness of the resolution algorithm. A qualitative user study with seven senior developers demonstrates that CodePod enables significant improvements in project scalability compared to Jupyter, with notable reductions in navigation effort. We validate the system's effectiveness on large-scale projects with thousands of lines of code, demonstrating its applicability beyond traditional notebook boundaries. Our tool is open-source and available at https://codepod.io
format Preprint
id arxiv_https___arxiv_org_abs_2301_02410
institution arXiv
publishDate 2023
record_format arxiv
spellingShingle CodePod: A Language-Agnostic Hierarchical Scoping System for Interactive Development
Li, Hebi
Bao, Forrest Sheng
Xiao, Qi
Tian, Jin
Software Engineering
Programming Languages
Interactive development environments like Jupyter Notebooks enable incremental coding through cells with immediate feedback, but their linear structure and global namespace limit scalability for large software projects. We present CodePod, a hierarchical extension of Jupyter that introduces a novel scoped execution model with formal semantics. Our key contribution is a language-agnostic runtime system that performs source-level transformations to implement hierarchical scoping rules, enabling true incremental evaluation across nested modules without requiring language-specific kernel modifications. We formalize the scoping semantics as a mathematical framework with precise visibility relations and prove key properties including uniqueness of symbol resolution and correctness of the resolution algorithm. A qualitative user study with seven senior developers demonstrates that CodePod enables significant improvements in project scalability compared to Jupyter, with notable reductions in navigation effort. We validate the system's effectiveness on large-scale projects with thousands of lines of code, demonstrating its applicability beyond traditional notebook boundaries. Our tool is open-source and available at https://codepod.io
title CodePod: A Language-Agnostic Hierarchical Scoping System for Interactive Development
topic Software Engineering
Programming Languages
url https://arxiv.org/abs/2301.02410