Source Code Analysis in the Humanities
I needed to know, what is actually out there in terms of methods, respectively, what makes sense for the humanities. Some things I found:
- Critical Code Analysis
- Performance, reliability, security, and style
- Design patterns (that could lead to errors), control and data flow, metrics, and semantic
- “Generating code quality metrics, such as counting the number of lines of code, determining comment density, and assessing code complexity”
- “Verifying compliance with code standards […]”
- Subsystem-Dependency Recovery Approach
- Furthermore: Static and Dynamic program analysis
So what does source (or static) code analysis for the humanities be able to accomplish. I guess a big task would be creating access, the number one hurdle. Not having a experience with programming or reading code makes it nearly impossible to make meaning of it. So tools should be able to make researchers overcome that by actracting away the code and enable questions to be asked. Metrics and mapping (what’s where in what quantity or density) would be a first good candidate. Not sure about control and data flow, which would already need more expertise to make sense of. Semantics and patterns could be interesting in terms of finding unusual stuff. That could actually be a task for a LLM. This could help generate places of interest, where the current code base deviates from others.
See also
- Source Code Analysis - MATLAB & Simulink
- What Is Static Code Analysis? Types, Tools and Techniques
- Source Code Analysis Tools | OWASP Foundation
- List of tools for static code analysis - Wikipedia
- Supported languages and frameworks — CodeQL
Computational Methods in Video Game Studies
Exemplary case study that could bridge video game medialities through computational methods.
An interviewee had told me how in 1983, he had tampered with the machine code of a game that was still in the memory cache. It was a tennis game that automatically pushed the ball out after a few ball changes. My interviewee thought that was unfair. This opens up the discus on luck and skill, and this game in particular is an early example of how complexities of reality and their influence on luck and skill were captured in digital games. It would be interesting to find out what influence this game has on the historical development of this aspect of games, but also why this value was static and not a random generator (as far as I understood my informant). A computational approach could now use RetroDebugger to record different medialities and layers, such as video, player input, memory map, disassembly, and put them up for comparison.
Code Analysis in the Humanities
- Formal Source Code Analysis Tool:
- Have csv with categorised keywords for language at hand (Bob: Grafic; Logic)
- Possible functions:
- Cleanup by joining features (: in Basic)
- count instances and see towards what the code is leaning
- Visualize flow (needs to recognize endless loops)
- minimap for findings