Siemens Communications / Early engineering
Making switch failures readable
A grammar-driven analyzer turned telecom switch error symptoms into information engineers could inspect.
Turn error symptoms into inspectable structure
- Error symptom filesCHILL switch programs
- Lex + YaccGrammar & parsing
- C++ / UnixAnalysis application
Switch programs produced error symptom files and stack traces.
Read the complete architecture & boundaries
A conceptual parsing pipeline. No real error trace, production output or exact class design is reproduced.
- Read the symptoms. Switch programs produced error symptom files and stack traces.
- Parse the structure. Vivek wrote the Lex/Yacc grammar to parse and analyze the files.
- Inspect the result. Engineers could provide a file and inspect results in a C++/Unix application.
THE PROBLEM
What needed to change.
Telecom exchange programs written in CHILL produced error symptom files and stack traces that engineers needed to analyze.
MY CONTRIBUTION
Where I came in.
I wrote a grammar using Lex and Yacc to parse and analyze those files, and worked on the C++/Unix interface and analysis application.
Our team developed, demonstrated and handed the system to Siemens in Germany after approximately 18 months.
THE APPROACH
How it came together.
- Take an error symptom file produced by a telecom switch.
- Parse and analyze the file with a Lex/Yacc grammar.
- Make the results inspectable through a C++/Unix application.
THE OUTCOME
What the work made possible.
The team demonstrated and handed over the Error Symptom Data Analyzer. My clearest personal contribution was the parsing grammar.
Technical & implementation detail
Technologies described in this account: Lex, Yacc, C++, Unix, CHILL.
Lex and Yacc provided the grammar-based parsing approach. The source files came from CHILL switch programs; the interface and analysis application used C++ on Unix. The exact split of C++ code ownership is not established, so the personal implementation claim centers on the grammar.
The accompanying visual is a simplified explanation. It is not a production screenshot or a complete implementation specification.