API-Driven Scripting Generators for IC Design Tools
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current IC design tools require time-consuming and error-prone manual creation of custom scripting libraries in various programming languages, which hinders efficient IC design iterations.
Innovation Solution
A system and method to automate the generation of a scripting library across multiple programming languages by creating an API description using Java source code or formats like XML, JSON, and YAML, generating server and client communication modules using REST protocol, and integrating polyglot client libraries into integrated development environments (IDEs).
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a custom library is created for each programming language to accommodate different designer preferences, then adaptability to various programming languages is improved, but time consumption and error rates increase
Solution Approach 1:
The system uses a universal code generation platform that can generate client libraries for multiple programming languages (Python, Java, JavaScript, etc.) from a single API description. This eliminates the need to create separate custom libraries for each language while maintaining language-specific adaptability through template-based generation.
Solution Approach 2:
The system generates client libraries by copying and adapting a standardized template structure into different programming languages. The API description serves as a master copy that can be instantiated into multiple language-specific versions, reducing manual creation time and minimizing errors through automated replication.
2Adaptability or versatility
If a custom library is created for each programming language, then support for multiple languages is improved, but complexity of the development process increases
Solution Approach 1:
The development process is segmented into distinct components: a centralized API description (OpenAPI/Swagger specification) that defines the interface, and separate client libraries for each language that are generated from this description. This segmentation allows the complex multi-language support to be managed through a modular architecture where the API description serves as the single source of truth.
Solution Approach 2:
The API description (OpenAPI/Swagger specification) acts as an intermediary between the server-side implementation and the client-side libraries in different programming languages. This intermediary standardizes the interface definition, allowing the complex task of creating multi-language libraries to be simplified through automated generation from this central specification.
3Ease of operation
If manual creation of custom scripting libraries is performed, then flexibility in design is maintained, but productivity decreases
Solution Approach 1:
The system performs preliminary action by generating the complete client library structure and code templates automatically from the API description before the actual development work begins. This preliminary generation handles the repetitive and error-prone portions of library creation, allowing developers to focus only on customizing and testing the generated code, thereby maintaining flexibility while significantly improving productivity.
Data Source
AI summary
A system (and method) is disclosed that automate creating a scripting library in a variety of programing languages. The system uses a process that generates a web scripting. The system generates a description of the application programming interface (API). The API description may be created using any one of: Java source code (e.g., Javadoc) to create an OpenAPI (e.g., swagger) description of the API; or the API description is created in any format capable of being read by a computer (e.g., XML, JSON, YAML, etc.).


