Dr David H Akehurst’s Post

View profile for Dr David H Akehurst, graphic

Principle Engineer & Consultant at itemis

AGL: A Dynamic Language Processing Library In the realm of parsing technology, dealing with complex grammars can often be a challenging task. AGL is a language processing library designed to provide a robust and efficient solution for parsing grammars. Initially crafted as an answer to situations where regular expressions were inadequate, AGL has grown to become a comprehensive language processing tool. One of its core features is the capability to parse grammars that are readable by both humans and machines. Moreover, all operations are executed at runtime, thus eliminating the need for code generation. What sets AGL apart is its versatile platform compatibility. It can function on diverse platforms such as JVM, JavaScript browser, Node.js, and theoretically even native and WebAssembly platforms. AGL integrates smoothly with browser editors like Ace, providing features like syntax coloring, basic code completion, error and warning feedback, and custom formatting. AGL employs a 'scan on demand' approach and a Generalised Left Corner parsing algorithm. This allows it to handle both left and right recursive rules efficiently. Additionally, it facilitates grammar composition by enabling other grammars to be extended or embedded. AGL has already been put to the test in practical applications. For example, it has been used for parsing Matlab statements and in creating query languages for traceability graphs. While AGL continues to mature and evolve, it stands as a testament to the potential of parsing technology when it comes to handling complex grammars. If you are working in language processing or are interested in parsing technology, AGL's innovative approach might be worth exploring. https://lnkd.in/eysRGa2z #AGL #ParsingTechnology #LanguageProcessing #Programming #TechDevelopment

AGL Editor Demo

AGL Editor Demo

info.itemis.com

Robert Walter

Senior Software Developer

10mo

What is the definition of "human readable" here? Looking at the example linked above, I don't quite understand how the grammar definition language is any more or less readable than most context free grammar definition languages? And I'm pretty sure any human without basic understanding of (E)BNF cannot really make sense of the grammar definiiton. Or am I missing the point here and the clue is that the grammar definition is interpreted directly?

Like
Reply

I really like that light-weight approach, can't wait to put it into our itemis CREATE web editor!

See more comments

To view or add a comment, sign in

Explore topics