What is a language binding?

痞子三分冷 提交于 2019-12-03 02:14:38

问题


My good friend, Wikipedia, didn't give me a very good response to that question. So:

  • What are language bindings?
  • How do they work?

Specifically accessing functions from code written in language X of a library written in language Y.


回答1:


Let's say you create a C library to post stuff to stackoverflow. Now you want to be able to use the same library from Python. In this case, you will write Python bindings for your library.

Also see SWIG: http://www.swig.org




回答2:


In the context of code libraries, bindings are wrapper libraries that bridge between two programming languages so that a library that was written for one language can also be implicitly used in another language.

For example, libsvn is the API for Subversion and was written in C. If you want to access Subversion from within Java code you can use libsvn-java. libsvn-java depends on libsvn being installed because libsvn-java is a mere bridge between the Java programming language and libsvn, providing an API that merely calls functions of libsvn to do the real work.




回答3:


Okay, now the question has been clarified, this isn't really relevant so I'm moving it to a new question

Binding generally refers to a mapping of one thing to another - i.e. a datasource to a presentation object. It can typically refer to binding data from a database, or similar source (XML file, web service etc) to a presentation control or element - think list or table in HTML, combo box or data grid in desktop software.

...If that's the kind of binding you're interested in, read on...

You generally have to bind the presentation element to the datasource, not the other way around. This would involve some kind of mapping - i.e. which fields from the datasource do you want to appear in the output.

For more information in a couple of environments see:

  • Data binding in .Net using Windows Forms
    • http://www.codeproject.com/KB/database/databindingconcepts.aspx
    • http://www.akadia.com/services/dotnet_databinding.html
  • ASP.NET data binding
    • http://support.microsoft.com/kb/307860
    • http://www.15seconds.com/issue/040630.htm
    • http://www.w3schools.com/ASPNET/aspnet_databinding.asp
  • Java data binding
    • http://www.xml.com/pub/a/2003/09/03/binding.html
  • Python data binding
    • http://www.xml.com/pub/a/2005/07/27/py-xml.html
  • General XML data binding
    • http://www.rpbourret.com/xml/XMLDataBinding.htm



回答4:


In Flex (Actionscript 3). Source

A data binding copies the value of a property in one object to a property in another object. You can bind the properties of following objects: Flex components, Flex data models, and Flex data services.

The object property that provides the data is known as the source property. The object property that receives the data is known as the destination property.

The following example binds the text property of a TextInput component (the source property) to the text property of a Label component (the destination property) so that text entered in the TextInput component is displayed by the Label component:

<mx:TextInput id="LNameInput"></mx:TextInput>
...
<mx:Label text="{LNameInput.text}"></mx:Label>

Data binding is usually a simple way to bind a model to user interface components. For example, you have a class with a FirstName property. In flex you could easily bind that property to a textbox by setting the value of the textbox to {Object.FirstName}. Then, every time that FirstName property changes, the textbox will be updated without requiring you to write any code to monitor that property for changes.

Hope that helps.

Matt



来源:https://stackoverflow.com/questions/25865/what-is-a-language-binding

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!