Taking that into consideration, then, would Java with JIT qualify as an interpreted or compiled language? I'm not sure, myself---any thoughts?
That question is non-sense. You confuse programming languages with compiler implementation techniques.
A language is a syntax (how do I write it?) and a semantic (what does it do when I run it?). Languages never say anything about you are supposed to implement it, and so asking if a language is interpreted or compiled is just non-sense.
There are many implementations of the Java language, with many different execution strategies.
Sun's implementation of Java is a Just-In-Time compiler (JIT).
SableVM is also an implementation of the Java language. It's execution strategy is to interpret the bytecode.
GCJ is another implementation of the Java language. It's execution strategy is to compile ahead of time.
DrJava is yet another implementation of the Java language. It's execution strategy is to compile the Java source code to Scheme code, then macro-expand the Scheme code to primitive Scheme, then compile that to bytecode, then interpret the bytecode.
Other languages also have a diversity of implementations:
The Ocaml language comes standard with three implementation: an interpreter, a bytecode compiler/bytecode interpreter pair, and an aggresively optimizing native code compiler. Somebody else also implemented a JIT.
The standard Python implementation is an interpreter. Starkiller is a Python compiler, and Psyco is a Python JIT.
Last but not least, GCC is a C compiler (of course), and Cint is a C interpreter.
Now go in peace, and never say "compiled language" again.
Because when people started researching artificial intelligence, chess playing was indentified as a problem requiring human-style hinsight.
So, now that compuiter can beat grand chessmasters, it forces people to reconsider what is intelligence, or, alternatively, to admit that the computer simulates human insight in some form.
The Columbia School of Journalism set up a blog dedicated to review the quality of the political coverage done by various news adgencies.
They are taking news outlets to task for keeping alive misconceptions that are readily debunked by some elementary fact-checking.
The Campaign Desk doubles as an effective source of news because ecause their tip-of-hat section keeps links to the best news articles available. They are also very good at documenting their sources, and at keeping ahead of the spin and the echo chamber that permeates most of the news sphere.
Another way to read this event is, a woman was elected president in spite of MIT traditional gender-bias. Possibly this indicates that MIT has began overcomming that bias. Moreover, it will certainly help even out the playground in the future.
The statistics of the size of these patches, and of the waiting times between the appearance of successive patches, are the same as those for a model of cellular automata: The individual leaf stomata [...] respond to what their neighbouring stomata are doing.
Yes, Gentoo has recently started distributing binary package along with their well-known well-loved source packages. From gentoo's emerge manual:
--usepkg (-k)
Tells emerge to use binary packages (from $PKGDIR) if they are available, thus possibly avoiding some time-consuming compiles. This option is useful for CD installs; you can export PKGDIR=/mnt/cdrom/packages and then use this option to have emerge "pull" binary packages from the CD in order to satisfy dependencies.
Closed-source programs are often wrapped with a click-through liscence, as such, they cannot legally be distributed through emerge. For these, Gentoo has you download the tar manually and give it to emerge. The gentoo package will take care of the installation. For instance, IBM's jdk has the following gentoo package:
* dev-java/ibm-jdk
Latest version available: 1.4.1
Latest version installed: [ Not Installed ]
Size of downloaded files: 0 kB
Homepage: https://www6.software.ibm.com/dl/lxdk/lxdk-p
Description: IBM Java Development Kit, version 1.4.1
The size of the down is 0kb because the package contains nothing but installation scripts. If you try to install it, you get the following message:
root@canuk gmarceau # emerge ibm-jdk
Calculating dependencies...done!
>>> emerge (1 of 1) dev-java/ibm-jdk-1.4.1 to/
>>> Unpacking source...
* Download 32-bit pSeries and iSeries for PPC.
* Download 32-bit xSeries for x86.
!!! ERROR: dev-java/ibm-jdk-1.4.1 failed.
!!! Function src_unpack, Line 43, Exitcode 0
!!! Please download IBMJava2-SDK-141.tgz from https://www6.software.ibm.com/dl/lxdk/lxdk-p to/usr/portage/distfiles
Once you drop the file in the right directory, the package installs like a standard gentoo package.
... and also the gentoo's emerge, with all its FreeBSD-inspired goodness.
Yes dspeyer, some people have been thinking out better package system, figuring out what the Right Way(tm) to deal with local packages, and coding them up.
Install Gentoo some day. Emerge really work smooth.
Let's see, these translation system require about one gigabyte of two-way translated text to train. They get them from gouvernemental diaries from bilingual countries and from online bilingual newspapers.
Coding a compiler to translate between coding languages is much easier then manually translating one gigabyte worth of code. Plus the compiler will always give correct result (modulo bug), whereas the statistical approach is merely "likely" to be correct.
The NSF funds this kind of research (assuming you are in the States). In Canada, Nserc does. If you can build a better system, write it up in a grant application, and they will give you money. It is as simple (and as hard) as that.
From the article:
The original work along these lines dates back to the late 1980s and early 1990s and was done by Peter F. Brown and his colleagues at IBM's Watson Research Center.
IBM's pioneering work was written up in a student-friendly workbook available online. Feel free to try coding it and see how well you do. Do remember though, the state of the art has progressed a lot since IBM's work. This workbook only covers the basics.
You will find that debugging statistical translation system is really hard. You can write test cases, but they take one hour to run each time. You can look at the result of your test cases, but since you cannot work the answer out by hand, you can never by sure if the numbers you are computing are correct. As an example of how tricky it can get, in Brown university's cs241 last fall, amongts the four teams, only two teams managed to correctly implement Model-3, and the workbook goes up to Model-5.
There are two reason why a three way translation is a bad idea. First, it is already difficult to find large amounts of text translated two-way and available in digital format. Restricting your approach to three-way translated text would reduce the amount of text you could train on so much, it would offset the advantage you would get from the three-way text.
Second, training for statistical translation is really expensive. If running one single test case can take an hour, running a full training can take a whole week. Under these conditions, you are always very careful how you spend your cpu cycles. Until better cpus come along, training three-way and cross referencing each language with the other could well take a month of processing (or two).
The difference is clear: Apple is not a monopoly. Once you are declared a monopoly, the gouvernment jumps in and restrics activities that would otherwise be fair game.
One such restriction is: you cannot use your weight in your monopoly market to gain advantage in another, non-monopoly market. This is what Microsoft did: they leveraged their wight in OS to gain an advantages in the browser war.
If you want to be charitable, this explains why Microsoft got nailed. In their mind, Windows never was a monopoly. They perceived themselves attacked from all side, by Linux, BeOS, Java and Apple. They probably felt the only way to secure their market was to keep on playing rough. Except that once you are as big as Windows, playing rought is no longer allowed.
For most of theses transformations to be correct, the compiler has to prove there is only one pointer to the object -- in the whole program. Whole-program analyses are expensive, and so are point-to analysis. And there is just not that kind of time to spare in a JIT, where every second spent analysing the program is time spent not executing it.
The optimization the book proposes are all hit-or-miss adventures. Even for a programmer with intimate knowledge of the code, it is sometime difficult to predict if a change will help or imper performance. The compiler has even less chance to do so correctly -- and nobody like a compiler which slows down their code trying to optimize it.
I see alot of people getting upset at Mathhew without having read the article. For them, and for those who are reading in diagonal, I'll summarise the important point here.
At LL2 Matthew Flat posed that, while OS's and programming languages both support application development, by providing libraries of function calls, their difference in focus fundamentaly sets them appart. OS's focus on isolation of code, for security and for stability. Programming languages focus on cooperation, and try to maximize code reuse and efficiency.
Basicaly, OS hacker and the PL hacker have alot to learn from each each other. They would win at from cross-pollination between the two fields. Matthew then proceeded to show his implementation of what operating system concepts would look like in a programming language, by demoing DrScheme, a programming environment which can run (and debug) itself recursively.
Good point. Typing "perl foo.pl" bypasses a missing execution flag just as successfully as "chmod +x foo.pl &&./foo.pl". However, in Wine's case, there is no way not to bypass the flag. There should be a way to make the flag apply, and it should be the default.
bzzz. wrong. 'An Inconvinient Truth' is the first carbon-neutral documentary
You are right. I meant http://www.professorj.org/
Thanks for the correction.
Taking that into consideration, then, would Java with JIT qualify as an interpreted or compiled language? I'm not sure, myself---any thoughts?
That question is non-sense. You confuse programming languages with compiler implementation techniques.
A language is a syntax (how do I write it?) and a semantic (what does it do when I run it?). Languages never say anything about you are supposed to implement it, and so asking if a language is interpreted or compiled is just non-sense.
There are many implementations of the Java language, with many different execution strategies.
SableVM is also an implementation of the Java language. It's execution strategy is to interpret the bytecode.
GCJ is another implementation of the Java language. It's execution strategy is to compile ahead of time.
DrJava is yet another implementation of the Java language. It's execution strategy is to compile the Java source code to Scheme code, then macro-expand the Scheme code to primitive Scheme, then compile that to bytecode, then interpret the bytecode.
Other languages also have a diversity of implementations:
The Ocaml language comes standard with three implementation: an interpreter, a bytecode compiler/bytecode interpreter pair, and an aggresively optimizing native code compiler. Somebody else also implemented a JIT.
The standard Python implementation is an interpreter. Starkiller is a Python compiler, and Psyco is a Python JIT.
Now go in peace, and never say "compiled language" again.
Because when people started researching artificial intelligence, chess playing was indentified as a problem requiring human-style hinsight.
So, now that compuiter can beat grand chessmasters, it forces people to reconsider what is intelligence, or, alternatively, to admit that the computer simulates human insight in some form.
campaigndesk.org
The Columbia School of Journalism set up a blog dedicated to review the quality of the political coverage done by various news adgencies.
They are taking news outlets to task for keeping alive misconceptions that are readily debunked by some elementary fact-checking.
The Campaign Desk doubles as an effective source of news because ecause their tip-of-hat section keeps links to the best news articles available. They are also very good at documenting their sources, and at keeping ahead of the spin and the echo chamber that permeates most of the news sphere.
Another way to read this event is, a woman was elected president in spite of MIT traditional gender-bias. Possibly this indicates that MIT has began overcomming that bias. Moreover, it will certainly help even out the playground in the future.
The statistics of the size of these patches, and of the waiting times between the appearance of successive patches, are the same as those for a model of cellular automata: The individual leaf stomata [...] respond to what their neighbouring stomata are doing.
Or, in one word: catuses play the game of life.
For instance, the next step after radiosity, as I understand, is Metropolis Light Transport. It can render some rather nice caustics:
g
http://graphics.stanford.edu/papers/metro/fig6.jp
http://graphics.stanford.edu/papers/metro/
Closed-source programs are often wrapped with a click-through liscence, as such, they cannot legally be distributed through emerge. For these, Gentoo has you download the tar manually and give it to emerge. The gentoo package will take care of the installation. For instance, IBM's jdk has the following gentoo package:
The size of the down is 0kb because the package contains nothing but installation scripts. If you try to install it, you get the following message:root@canuk gmarceau # emerge ibm-jdk ...done! /
/usr/portage/distfiles
Calculating dependencies
>>> emerge (1 of 1) dev-java/ibm-jdk-1.4.1 to
>>> Unpacking source...
* Download 32-bit pSeries and iSeries for PPC.
* Download 32-bit xSeries for x86.
!!! ERROR: dev-java/ibm-jdk-1.4.1 failed.
!!! Function src_unpack, Line 43, Exitcode 0
!!! Please download IBMJava2-SDK-141.tgz from https://www6.software.ibm.com/dl/lxdk/lxdk-p to
Once you drop the file in the right directory, the package installs like a standard gentoo package.
... and also the gentoo's emerge, with all its FreeBSD-inspired goodness.
Yes dspeyer, some people have been thinking out better package system, figuring out what the Right Way(tm) to deal with local packages, and coding them up.
Install Gentoo some day. Emerge really work smooth.
http://safari.oreilly.com/?XmlId=0-596-00213-0
http://slashdot.org/books/01/01/07/0414242.shtml
Let's see, these translation system require about one gigabyte of two-way translated text to train. They get them from gouvernemental diaries from bilingual countries and from online bilingual newspapers.
Where would you find one gigabyte woth of manually translated code to train with? The Great Programming Language Shootout and the 100 bottles of beers page together hardly add to one gigabyte.
Coding a compiler to translate between coding languages is much easier then manually translating one gigabyte worth of code. Plus the compiler will always give correct result (modulo bug), whereas the statistical approach is merely "likely" to be correct.
Sorry to burst your bubble.
From the article: The original work along these lines dates back to the late 1980s and early 1990s and was done by Peter F. Brown and his colleagues at IBM's Watson Research Center.
IBM's pioneering work was written up in a student-friendly workbook available online. Feel free to try coding it and see how well you do. Do remember though, the state of the art has progressed a lot since IBM's work. This workbook only covers the basics.
You will find that debugging statistical translation system is really hard. You can write test cases, but they take one hour to run each time. You can look at the result of your test cases, but since you cannot work the answer out by hand, you can never by sure if the numbers you are computing are correct. As an example of how tricky it can get, in Brown university's cs241 last fall, amongts the four teams, only two teams managed to correctly implement Model-3, and the workbook goes up to Model-5.
There are two reason why a three way translation is a bad idea. First, it is already difficult to find large amounts of text translated two-way and available in digital format. Restricting your approach to three-way translated text would reduce the amount of text you could train on so much, it would offset the advantage you would get from the three-way text.
Second, training for statistical translation is really expensive. If running one single test case can take an hour, running a full training can take a whole week. Under these conditions, you are always very careful how you spend your cpu cycles. Until better cpus come along, training three-way and cross referencing each language with the other could well take a month of processing (or two).
The difference is clear: Apple is not a monopoly. Once you are declared a monopoly, the gouvernment jumps in and restrics activities that would otherwise be fair game.
One such restriction is: you cannot use your weight in your monopoly market to gain advantage in another, non-monopoly market. This is what Microsoft did: they leveraged their wight in OS to gain an advantages in the browser war.
If you want to be charitable, this explains why Microsoft got nailed. In their mind, Windows never was a monopoly. They perceived themselves attacked from all side, by Linux, BeOS, Java and Apple. They probably felt the only way to secure their market was to keep on playing rough. Except that once you are as big as Windows, playing rought is no longer allowed.
You might be thinking of the award winning Rez' Trance Vibrator for the Playstation 2.
Once slashdot was trumpetting the comming of futuristic flat plasma displays. (Read the comment, the number of naysayers is hillarious).
OLED are just around the corner:
Fuel cells are due for next year
And after years of slashdot ranting about true-3d displays, holodecks are finally on sale!
For most of theses transformations to be correct, the compiler has to prove there is only one pointer to the object -- in the whole program. Whole-program analyses are expensive, and so are point-to analysis. And there is just not that kind of time to spare in a JIT, where every second spent analysing the program is time spent not executing it.
The optimization the book proposes are all hit-or-miss adventures. Even for a programmer with intimate knowledge of the code, it is sometime difficult to predict if a change will help or imper performance. The compiler has even less chance to do so correctly -- and nobody like a compiler which slows down their code trying to optimize it.
You don't happen to have a link to a news item about that, do you?
Dude, but you forgot the link to Pheonix. Beside, Phoenix rocks enough arse to be mentionned twice.
mmm, Big Bird, Emacs is not a browser... it's an operating system.
Phoenix (http://www.mozilla.org/projects/phoenix/)/ )
w3m (http://w3m.sourceforge.net)
Links (http://artax.karlin.mff.cuni.cz/%7Emikulas/links
I see alot of people getting upset at Mathhew without having read the article. For them, and for those who are reading in diagonal, I'll summarise the important point here.
At LL2 Matthew Flat posed that, while OS's and programming languages both support application development, by providing libraries of function calls, their difference in focus fundamentaly sets them appart. OS's focus on isolation of code, for security and for stability. Programming languages focus on cooperation, and try to maximize code reuse and efficiency.
Basicaly, OS hacker and the PL hacker have alot to learn from each each other. They would win at from cross-pollination between the two fields. Matthew then proceeded to show his implementation of what operating system concepts would look like in a programming language, by demoing DrScheme, a programming environment which can run (and debug) itself recursively.
Bell Canada Turns Payphones into Public Hotspots5 7&mode=flat&tid=95
Posted by michael on Wed Dec 11, '02 11:59 AM
http://slashdot.org/article.pl?sid=02/12/11/16282
(*) : Bell Canada actually offers very good service, ground lines phones, cell phones, dsl, it's all good
Any normal French Canadian would say "Tabarnak de viarge! J'en r'viens pas!!"
Yep, that's much much closer to it.
Better expressed as : Ben gadon, c'est presque la bonne afaire.
Good point. Typing "perl foo.pl" bypasses a missing execution flag just as successfully as "chmod +x foo.pl && ./foo.pl".
However, in Wine's case, there is no way not to bypass the flag. There should be a way to make the flag apply, and it should be the default.
Why did Wine accepted to run a file which didn't have +X permissions? That would be Wine's contribution to bugtrack.