What's this programming language?(demo.nithinbekal.com)
demo.nithinbekal.com
What's this programming language?
http://demo.nithinbekal.com/what-prog-lang/
27 comments
It can't understand C.
http://i.imgur.com/7hrPE.png
I gave it this and it thought it was Vala:
#include <stdio.h>
int main(int argc, char* argv[]) {
return 0;
}
Haskell is a very weird guess for yours.Yup, it does a terrible job with the C family of languages. Hardly ever gets that right. And if you type in any random keys, it often identifies it as Haskell. ;-)
It does a decent job with Perl, Python, Ruby, Bash, etc.
It does a decent job with Perl, Python, Ruby, Bash, etc.
Yeah, it nailed all the Perl I tried, even rather niche stuff.
It cant even get a "Hello World" C program right.
#include<stdio.h> main() { printf("Hello World"); }
#include<stdio.h> main() { printf("Hello World"); }
Nice idea, but the quality and/or the breadth of languages it knows about leaves much to be desired.
The first language I tried was Forth. I have yet to find a piece of code that it recognizes as such. For example the example from http://c2.com/cgi/wiki?ExampleForthCode gets a 'VHDL, could also be VBSCRIPT'
My next attempt was PostScript. I copied http://www.science.uva.nl/~robbert/ps/bluebook/program_01.ht... (which starts with the giveaway line "%!PS-Adobe-2.0"), and it says 'RUBY, could also be MEL'
I guess that the thing would look better of with some kind of thresholding that allows it to say 'I don't know, but if I had to guess, I would say RUBY or MEL' instead.
The first language I tried was Forth. I have yet to find a piece of code that it recognizes as such. For example the example from http://c2.com/cgi/wiki?ExampleForthCode gets a 'VHDL, could also be VBSCRIPT'
My next attempt was PostScript. I copied http://www.science.uva.nl/~robbert/ps/bluebook/program_01.ht... (which starts with the giveaway line "%!PS-Adobe-2.0"), and it says 'RUBY, could also be MEL'
I guess that the thing would look better of with some kind of thresholding that allows it to say 'I don't know, but if I had to guess, I would say RUBY or MEL' instead.
<script>
var str="hello world";
</script>
This looks like xml. It could also be django, though. I'm not completely sure. //--------------------- How come Django is a programming language?
This looks like xml. It could also be django, though. I'm not completely sure. //--------------------- How come Django is a programming language?
It's in the same sense that PHP is a programming language -- Django has its own idiomatic templating language with loops and other such constructs. It looks like this:
{% extends "base.html" %}
{% block title %}My amazing blog{% endblock %}
{% block content %}
{% for entry in blog_entries %}
<h2>{{ entry.title }}</h2>
<p>{{ entry.body }}</p>
{% endfor %}
{% endblock %}
As for why this thing can't recognize "it looks like HTML + JS", I can't answer that for you -- but there should be a family of responses; "HTML + PHP," "HTML + Django", "HTML + JS" etc.(defn factorial [n] (apply * (range 2 (inc n)))) - Rust or CSS
(defun factorial (n) (apply (function *) (upto n))) - MATLAB or Lua
(defun factorial (n) (apply (function *) (upto n))) - MATLAB or Lua
I put this:
with Ada.Text_IO;
procedure WTF
is
type X is array (Positive range <>) of Integer;
procedure Print (N: X)
is
begin
for I in N loop
Ada.Text_IO.Put_Line
(File => Ada.Text_IO.Standard_Output,
Item => Integer'Image (N (I));
end loop;
end Print;
begin
null;
end WTF;
And it can't recognize Ada :)
Even when you use standard library.
"This looks like VHDL."
"It could also be a VBSCRIPT, though I'm not completely sure"Impressive that it doesn't just take the best guess; it also informs you of its alternative hypotheses:
http://i.imgur.com/wITwa.png
Update:
Reading your blog post, I see that this is a wrapper around highlight.js, which is doing the language-guessing (including the second-best guess): http://softwaremaniacs.org/wiki/doku.php/highlight.js:api
http://i.imgur.com/wITwa.png
Update:
Reading your blog post, I see that this is a wrapper around highlight.js, which is doing the language-guessing (including the second-best guess): http://softwaremaniacs.org/wiki/doku.php/highlight.js:api
OP here. I can't take credit for that, though. ;-)
It uses the highlight.js API for making the guesses, which provides the 2nd best option as well. :)
It uses the highlight.js API for making the guesses, which provides the 2nd best option as well. :)
In conclusion, the site is a very good idea, but highlight.js is really too bad for this kind of use. Raise a ticket on highlight.js
Just tried it out with brainfuck(http://en.wikipedia.org/wiki/Brainfuck)!
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
XML or django. then again this could be anything. :P
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
XML or django. then again this could be anything. :P
The app depends on highlight.js which currently supports a limited set of languages, and unfortunately, Brainfuck isn't one of them.
http://softwaremaniacs.org/media/soft/highlight/test.html
I wonder what would happen to the accuracy of highlight.js highlightAuto method if more languages were to be supported. Highlight.js recognizes languages based on how many language constructs it can recognize. More languages = more overlap in language constructs, and therefore more likelihood of wrong matches.
http://softwaremaniacs.org/media/soft/highlight/test.html
I wonder what would happen to the accuracy of highlight.js highlightAuto method if more languages were to be supported. Highlight.js recognizes languages based on how many language constructs it can recognize. More languages = more overlap in language constructs, and therefore more likelihood of wrong matches.
Cool thing. Though it doesn't get ColdFusion. Anything with <cf_____> tags is ColdFusion.
<cfset foo = "bar">
<cfset foo = "bar">
int main(int argv, char **argv) {
return 0;
}
Doesn't look like CS and can't even be java. Adding a printf changes the top suggestion to perl. Adding an include changes the top suggestion to vala.The idea to reduce language recognition to syntax highlighting is a nice idea, but doesn't seem to work.
Its a neat idea but seems to struggle - misidentifying PHP as BASH, and struggling with Haskell, Go, Clojure, and told me Bash was PERL. I pulled some test code from the What's That Programming Language site which appeared on HN a few weeks ago http://wtpl.heroku.com/.
[deleted]
Doesn't seem to be familiar with factor:
I would have expected a guess at forth, but I really don't think it looks like ruby...
: foo ( seq -- nseq ) [ 1 + ] map ;
"This looks like ruby.
It could also be lua, though. I'm not completely sure."I would have expected a guess at forth, but I really don't think it looks like ruby...
Input (Go):
-----------------------
package main
import "fmt"
func main() { fmt.Println("Hello, 世界") }
-----------------------
Response: "This looks like actionscript. It could also be haskell, though. I'm not completely sure."
FAIL
-----------------------
package main
import "fmt"
func main() { fmt.Println("Hello, 世界") }
-----------------------
Response: "This looks like actionscript. It could also be haskell, though. I'm not completely sure."
FAIL
Might mention that it sees Scala as Ruby or Python (ouch!). But I did just type in, "bunch of stuff, some programming stuff" and it thought that was Haskell or Coffeescript. Guess those win awards for literate programming?
life←{↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵}
(APL Code for Conway's Game of Life, taken from Wikipedia) Recognized as Haskell.
This X[⍋X+.≠' ';] is AVRASM or CSS.
UPDATE: It gets better: INTERCAL (the despotic programming language) is recognized as Delphi or SQL. This seems suitable for Delphi ;) (Here's the code: http://cxg.de/_01a19b.htm)
(APL Code for Conway's Game of Life, taken from Wikipedia) Recognized as Haskell.
This X[⍋X+.≠' ';] is AVRASM or CSS.
UPDATE: It gets better: INTERCAL (the despotic programming language) is recognized as Delphi or SQL. This seems suitable for Delphi ;) (Here's the code: http://cxg.de/_01a19b.htm)
Its not too good at C++.
Apparantly,
Apparantly,
template <typename T> T foo(T t) { return t; }
looks like DJANGO or XML.So, uh... what does this say about PHP?
http://i.imgur.com/81uas.jpg
http://i.imgur.com/81uas.jpg
[deleted]
This definitely needs some work :) http://o7.no/JGT5pv
it thought my javascript was Lua, my php was bash or ruby, and my ruby was haskell.
Nice job... got my C# and Ruby correct, but FORTRAN was seen as VBSCRIPT.
So bad!
#include <stdio.h> XML
printf("%d", i); ERLANG
#include <stdio.h> XML
printf("%d", i); ERLANG
I put in brainfuck it said it might be VB
main() {
}
"This looks like css. It could also be haskell, though. I'm not completely sure."
Erm, okay...
"This looks like css. It could also be haskell, though. I'm not completely sure."
Erm, okay...
not accurate at all.
[deleted]
[deleted]