Is there a website that can recognize and identify what programming language is being input (pasted)?


My pastebin dpaste does this - when you paste stuff in the “Content” box and wait three seconds, it makes a guess.

The REST API I use for this feature is not publicized or documented, but you can use it if it suits you.


Here’s a usage example. Enter the curl command given below, then paste your content, then hit Enter, then hit ctrl-D. You get a JSON response with ranked guesses.

  1. $ curl -s -F "content=<-" dpaste.com/api/v2/guess-syntax/  
  2.  
  3. # Python 3: Fibonacci series up to n 
  4. >>> def fib(n): 
  5. >>> a, b = 0, 1 
  6. >>> while a < n: 
  7. >>> print(a, end=' ') 
  8. >>> a, b = b, a+b 
  9. >>> print() 
  10. >>> fib(1000) 
  11.  
  12. ^d 
  13. ["Python console session", "pycon", [["pycon", 1.25], ["python", 0.17]]] 

Il reconnaît actuellement ces langages/syntaxes :

Bash, BBcode, C, Clojure, C#, diff, HTML, HTML + modèle Django, HTML + PHP, Java, Javascript, JSON, nginx config, Objective-C, Python console, Python traceback, Python, Ruby, Tex, XML.

Tous les autres outils que j'ai vus pour cela visaient à identifier des programmes complets, plutôt que de courts extraits de code. Mais les extraits courts sont typiques dans un pastebin, alors j'ai fait le mien. C'est grossier mais ça fonctionne.

À un moment donné, je vais en faire un service autonome alimenté par AWS Lambda ou autre, et l'améliorer avec un peu de magie ML.