473,799 Members | 2,924 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Programming language + XML + XSL = compiler ?

Hi folks

New around here. This post may be a duplicate, I think I bungled the
previous one.

I've recently started out with XML and XSL and I'm very impressed with
both. My use is non-web in nature. In fact, I'm writing a compiler of
sorts, from high-level spec in XML, with eventual generation of VHDL.

I've made the following observations:

1. Given pure source code (Eg:Java,C++), one could generate an abstract
syntax tree in XML.
2. XML is also apposite for symbol tables and intermediate froms.
3. XSLT can do powerful transformations of said internediate forms.
4. XSL can generate plain text.

I'm wondering wondering what it would take to implement a compiler for
a given language in XML/XSL. More specifically, are there any XSL or
XML based systems that assist in scanning pure source into XML so that
the transformations can begin? Grammar could be provided in marked-up
EBNF. This is probably over-optimistic could the process would need
knowledge of LL/LALR etc.

The alternative approach is to use your standard scanner/parser
generator with it's own (non-interchangable) EBNF and have the action
code generate tagged tokens, giving you an AST in XML.

My questions:
1. Are there any decent XML shema's for EBNF?
2. Are there any tools / XSL extensions to do the above?
3. What are your thoughts on the whole idea?

Best regards,
Richard Brady

Jun 23 '06 #1
19 1697
rn*****@gmail.c om wrote:
I'm wondering wondering what it would take to implement a compiler for
a given language in XML/XSL.
Remember, XSL is a pure functional langauge. That may make some of the
manipulations a serious compiler would want to perform difficult.

But, yes, a basic old-fashioned just-replace-with-equivalent-code
transformation ought to be possible. This is not the set of tools I
would choose to do it in -- custom data structures are likely to be much
more efficient than trying to model everything in XML -- but if you're
looking for a pedagogical exercise, it could be a fun thing to try.

Were I you, I'd start with a language that has simpler syntax and
semantics than Java or C++, and use that to establish your framework and
understand the issues (including performance and memory space). Then, if
you're still feeling ambitious, go for it.

(Personally, I've stopped writing compilers for the sake of writing
compilers. I'd rather wait until I'm reasonably sure there's something
mine will do better than any existing alternative.)

More specifically, are there any XSL or XML based systems that assist in scanning pure source into XML so that
the transformations can begin? Grammar could be provided in marked-up
EBNF. This is probably over-optimistic could the process would need
knowledge of LL/LALR etc.

The alternative approach is to use your standard scanner/parser
generator with it's own (non-interchangable) EBNF and have the action
code generate tagged tokens, giving you an AST in XML.

My questions:
1. Are there any decent XML shema's for EBNF?
2. Are there any tools / XSL extensions to do the above?
3. What are your thoughts on the whole idea?

Best regards,
Richard Brady

Jun 23 '06 #2

rn*****@gmail.c om wrote:
3. XSLT can do powerful transformations of said internediate forms.


IMHE, XSLT can't do "powerful", for interesting values of powerful. It
does "Bulky but simple" very well indeed and is excellent for text
processing with blocks of text. If you try and do anything involving
semantics though, it starts to fall flat.

Jun 23 '06 #3
rn*****@gmail.c om wrote:
I'm wondering wondering what it would take to implement a compiler for
a given language in XML/XSL. More specifically, are there any XSL or
This has been suggested 5 years ago in

http://www.idealliance.org/papers/xm.../03-05-04.html

and also in comp.compilers late last year.
Google for "xml as intermediate representation"
3. What are your thoughts on the whole idea?


Teaching compiler construction could be an area
where this idea might be useful. But in real life,
I would _not_ like to write my source code in XML.
Jun 23 '06 #4
Then there's always the inverse: a programming language whose syntax is
based on XML, so it can be styled by XSLT (or generated from other XML
sources by XSLT). IBM's Bean Markup Language and BML Scripting Pages,
which I was involved in some years ago, were one such example, though in
that case the language was designed for configuration and assembly of
existing Java components (and BSF scripts, also something that I helped
develop) rather than being intended as a completely stand-alone
programming environment.
--
() ASCII Ribbon Campaign | Joe Kesselman
/\ Stamp out HTML e-mail! | System architexture and kinetic poetry
Jun 24 '06 #5
On Fri, 23 Jun 2006 23:46:38 -0400, Joe Kesselman
<ke************ @comcast.net> wrote:
Then there's always the inverse: a programming language whose syntax is
based on XML, so it can be styled by XSLT (or generated from other XML
sources by XSLT).


Ant

SQL DDL, as managed by the Apache Torque project

Jun 24 '06 #6
Hm. I don't usually think of Ant as a programming language, and I don't
think I've heard of anyone styling it, but that's an interesting
observation -- stylesheets to adapt Ant builds to different
environments, perhaps...
--
() ASCII Ribbon Campaign | Joe Kesselman
/\ Stamp out HTML e-mail! | System architexture and kinetic poetry
Jun 24 '06 #7
Hi folks

Thanks for the input. I'm not actually thinking of doing this as a
project, just curious about whether any investigation has been done on
the topic. I currently use this technique to transform digital signal
processing (DSP) algorithms specified in XML into VHDL implementations
of those algorithms.

Perhaps I'm off the mark with suggesting it for C++ or Java, but it's a
particularly interesting concept when considering higher-level
specifications such as in model driven engineering (like UML in MDA). A
large emphasis becomes interoperabilit y/exchangability/portability of
models, but at the core of it all is transformations between models.

It's interesting because we all have different backgrounds and
therefore unique perspectives on an concept like this.

Thanks again,
Richard

Jun 26 '06 #8
rn*****@gmail.c om wrote:
the topic. I currently use this technique to transform digital signal
processing (DSP) algorithms specified in XML into VHDL implementations
of those algorithms.


Where did you get the DSP algorithms in XML ?
Is there any standard for this ?
Jun 26 '06 #9

Joe Kesselman wrote:
Hm. I don't usually think of Ant as a programming language,
In its limited little way, it's a declarative programming language (as
was Prolog). You can use it as a convenient dependency resolver.
I don't think I've heard of anyone styling it,


I have an XSLT stylesheet that auto-documents Ant external targets.
Handy when I'm shipping deployment scripts to users.

I also auto-generate Ant from a vile combination of our bug tracker,
change control, and Torque repository. This generates database patch
scripts for upgrading customer databases from arbitrary start points to
new product versions.

Jun 26 '06 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

34
2694
by: nobody | last post by:
This article is posted at the request of C.W. Yang who asked me to detail my opinion of Lisp, and for the benefit of people like him, who may find themselves intrigued by this language. The opinions expressed herein are my personal ones, coming from several years of experience with Lisp. I did plenty of AI programming back in the day, which is what would now be called "search" instead.
32
2825
by: cat_dog_ass | last post by:
I am used to programming in DOS mode via Borland C++. I would now like to create programs for the Windows envirinment. Is it absoultely necessary to use Visual C++ to do this? Are there other tools that can help me in doing Windows programming via C++? How am I going to create drop-down menus and allow my programs to interact with the mouse? Regards, Icon
134
8049
by: evolnet.regular | last post by:
I've been utilising C for lots of small and a few medium-sized personal projects over the course of the past decade, and I've realised lately just how little progress it's made since then. I've increasingly been using scripting languages (especially Python and Bourne shell) which offer the same speed and yet are far more simple and safe to use. I can no longer understand why anyone would willingly use C to program anything but the lowest...
22
13719
by: Matt | last post by:
Some people identify Microsoft C# is Proprietary programming language. What is Proprietary programming language then? How does it differ from other languages such as C++, or Java?? Please advise. thanks!!
3
5401
by: Visually Seen # | last post by:
Hey everybody, I want to create my own programming language, using C#. Could anyone give me some tips, advice on this goal? Let's say that in my programming language uses the keyword, integer instead of int. Thanks, Seen Sharp
29
2259
by: SG | last post by:
Hi everyone, I am a complete novice at computers and programming and right now, all i need to know is that why do many people prefer C to C++? Is it just because they are used to using C and are conservative about switching over to C++ or is there some other reason? Secondly, could you please tell me how the knowledge of C will help me later on? I have a teacher here who just shrugged at this question and replied that the knowledge of...
139
6002
by: Joe Mayo | last post by:
I think I become more and more alone... Everybody tells me that C++ is better, because once a project becomes very large, I should be happy that it has been written in C++ and not C. I'm the only guy thinking that C is a great programming language and that there is no need to program things object oriented. Many people says also that they save more time by programming projects object oriented, but I think its faster to program them in a...
84
8600
by: aarklon | last post by:
Hi all, I found an interesting article here:- http://en.wikipedia.org/wiki/Criticism_of_the_C_programming_language well what do you guys think of this article....??? Is it constructive criticism that needs to be appreciated always...???
53
5263
by: Vicent Giner | last post by:
Hello. I am new to Python. It seems a very interesting language to me. Its simplicity is very attractive. However, it is usually said that Python is not a compiled but interpreted programming language —I mean, it is not like C, in that sense. I am working on my PhD Thesis, which is about Operations Research,
43
3702
by: Adem24 | last post by:
The World Joint Programming Language Standardization Committe (WJPLSC) hereby proclaims to the people of the world that a new programming language is needed for the benefit of the whole mankind in the 21st millenium. This new language not only differs from existing ones by new features and paradigms but which also brings real advantage by rigourously preventing bad programmer habits by omitting features which are outdated. In the proposed...
0
9538
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10473
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10249
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
9068
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7563
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5461
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
4138
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3755
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2937
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.