Mevcut C + + derleyicileri her XSLT var mı?

3 Cevap php

I found only one attempt to create such compiler - http://sourceforge.net/projects/xsltc/. But this project is dead for decade already. Are there any other examples? Opensource or commercial?

Böyle bir yazılım bina ile herhangi bir temel teknik sorunlar var mı? Özgün XSLT derleme tüm yaklaşımı ile?

Biz XSLT değiştirmenize gerek yok ama yine de daha yüksek performans almak istiyorum yerler (ve muhtemelen, düşük bellek gereksinimleri) - Ben bunu kullanmak için iyi bir kullanım durumlar vardır herhalde.

Bu yazılım göründüğü kadar verimli olmayabilir başka nedenler var mı? - Derlenmiş muhtemelen olurdu verimli olarak XSLT işlemciler tercümanlık mı?

3 Cevap

Benim anlayış, XSLT artık çok popüler değil. Genel olarak, seçtiğiniz dil için favori XML kütüphane kullanımı, XML verilerini ayrıştırmak ve çıktılarının istediğiniz şekilde biçimlendirmek için kod yazmak için daha kolay ve daha güçlü.

Zaten onunla bazı başarı vardı gibi Öte yandan, öyle görünüyor. Bu yararlı durumlar vardır. Check this SO question XSLT'dan artılarını ve eksilerini daha fazla ayrıntı için.

Neyse, genel olarak yazılım geliştiriciler C optimize XSLT çözümleyici + + yazmak için büyük bir hareket olmamıştır açıklıyor XSLT büyük taraftar değillerdir.

Dr Michael Kay sadece ilan Sakson / C http://www.saxonica.com/saxon-c/index.xml

Ürünün ana sayfasından:

Saxon/C is an alpha release of Saxon-HE on the C/C++ programming platform. APIs are offered currently to run XSLT 2.0 from C/C++ or PHP applications.

License

The product is open-source. The primary license is the Mozilla Public License version 2.0. In most cases, the source files are marked as being "incompatible with secondary licenses", which means that the code cannot be combined with code issued under a GPL license (the reason for this is the difficulty of contacting all past contributors to gain their assent.)

Some components are licensed under the Apache version 2.0 license or under BSD-style licenses. For more information on licensing, see license

Download

Sakson-C yükleyici indirmek için aşağıdaki linke tıklayınız.

libsaxon-HEC-setup.zip (30 MB)

XSLT bazı desen eşleştirme ile fonksiyonel bir dildeki olduğunu.

Sen belki bir anda geçerli olan tüm desenler verimli bir şekilde ele emin olun metamatching ile, desen-yönettiği bir dizi kural olarak derlemek olabilir.

Desen-yönettiği kuralları langauges derlemek oldukça iyi anlaşılmış olup; son yirmi yılda erken 80s ve türevleri Charles kırk en Rete ağları üzerinde çalışmaya bakın.

Biri bunu yapmak istedim Yani, onlar olabilir. Nerede ekonomik teşvik bulunuyor?

If you did want to do this, you want a tool that can process XSLT as a set of patterns rather than using an XML processor to treat it asdumb XML document at it otherwise appears to be. And you'd want to be able to manipulate/compose the patterns and generate target machine code. You'd need a tool that is designed to manipulate symbolic structures.

LISP iyi olabilir, ama özellikle iyi değil XML (ter ile düzeltilebilir) ayrıştırma, ve oluşturulan C + + kodu (sadece bu olası ter büyük bir miktarı ile düzeltilebilir) manipüle özellikle iyi değil istiyorum.

Our DMS Software Reengineering Toolkit is a system designed to treat formal documents as parts in essentially the same way a compiler treats source code as a set of langauge structures. It has XML parsers, and can manipulate C++ code fragments in parts, in composition, and can optimize the result by applying C++ optimization source-to-source program transformation rules. (Vast amount of sweat already invested in the C++ manipulation).

Sizlere XSLT için, DMS kullanarak model-yönettiği kuralı derleyiciler yaptık, ama yerine meta-eşleştirme desenleri ve bağlı değişikliklerin durumunu takip ederek, bu kaynak-kaynak programı dönüşüm kurallarını derlemek. Sen çeviri uygulamak gerçekten büyük otomata (LR ayrıştırma tablolar büyük olsun aynı şekilde sıralama) olsun.

Olsa da, XSLT için bu yapmadım.