Google Kythe

Originally known as Project Grok

Google Kythe
Developer(s)Google
Stable release
none yet (as of February 2015)
Written inC++, Go, Java, JavaScript, Shell, Clojure
Operating systemDebian
TypeIndexer and cross-referencer
LicenseApache License 2.0
Websitekythe.io

Google Kythe is a source code indexer and cross-referencer for code comprehension which describes itself as a "pluggable, (mostly) language-agnostic ecosystem for building tools that work with code".[1]

Overview

The core of Google Kythe is in defining language-agnostic protocols and data formats for representing, accessing and querying source code information as data. Kythe relies on an instrumented build system and compilers that produce indexing information, semantic information and metadata in Kythe specified format. This information obtained from running an instrumented build is stored in a language-agnostic graph structure. Finally, this graph structure can be queried to answer questions about the code base.[2]

Google Kythe is an open-source project being developed by Google.[3] It is licensed under an Apache licence 2.0.

Grok

Google Kythe originates from an internal project called Grok.

Grok had been proposed by Steve Yegge in 2008.[4] Yegge observed that software projects routinely use more than 3 programming languages, yet development tools tend to be language specific and don't handle multiple programming languages well. Adding support for a language to an IDE is hard and the ad hoc analysis tools in IDEs tend to be inferior to real parsers and compilers.[5]

Some parts of Grok were publicly released even before Google Kythe was announced. In 2010, Google released a Python static analyzer which has been developed as part of Grok.[6]

In 2012, C++, Java, Python, JS and "2 internal languages" were supported by Grok. There was a browser client with support for querying the database and visually navigating through the source code. There was an Emacs client.[5]

Chromium Code Search Browser[7] uses Grok index to provide quick links to definition for every symbol in the source code.[8]

Reception

See also

  • Free and open-source software portal

References

  1. ^ "Google Open Source Blog: Kythe: a new approach to making developer tools". Google Open Source Blog.
  2. ^ "Kythe - An Overview of Kythe". kythe.io.
  3. ^ "Google Kythe Website". Google. Retrieved 23 February 2015.
  4. ^ Steve Yegge. "Notes from the Mystery Machine Bus". plus.google.com.
  5. ^ a b Bryan Summersett. "Bryan Summersett - Steve Yegge and Grok". bsumm.net.
  6. ^ "Issue 1541: new static analyzer from Google - Jython tracker". jython.org.
  7. ^ "Chromium Code Search".
  8. ^ "Kythe - Exploring Kythe's Sample Web UI". kythe.io. Archived from the original on 9 May 2015. Retrieved 30 April 2015.

External links

Grok

  • Notes from the Mystery Machine Bus, blog
  • Steve Yegge and Grok, blog
  • Stanford Seminar - Google's Steve Yegge on GROK, lecture
  • Project Grok - Steve Yegge - Emacs Conference 2013, talk
  • Steve Yegge on Scalable Programming Language Analysis, talk

Kythe

  • Kythe (Google Kythe Homepage)
  • Indexing Large, Mixed-Language Codebases, talk

Similar projects

  • Facebook pfff
  • srclib
  • Oracle Frappé[1]
  • Microsoft Language Server Protocol designed as part of Visual Studio Code, with implementations for several languages and integrated by several other development tools.
  • v
  • t
  • e
Company
Divisions
People
Current
Former
Real estate
Design
Events
YouTube
Projects and
initiatives
Criticism
YouTube
Operating systems
Libraries/
frameworks
Platforms
Apigee
Tools
Search algorithms
Others
File formats
Entertainment
Play
YouTube
Communication
Search
Navigation
Business
and finance
Organization
and productivity
Docs Editors
Publishing
Education
Others
Chrome
Images and
photography
Hardware
Smartphones
Laptops and tablets
Wearables
Others
  • v
  • t
  • e
Advertising
Antitrust
Intellectual property
Privacy
Other
  • Category
Terms and phrases
Documentaries
Books
Popular culture
Others


Stub icon

This programming-tool-related article is a stub. You can help Wikipedia by expanding it.

  • v
  • t
  • e
Stub icon

This Google-related article is a stub. You can help Wikipedia by expanding it.

  • v
  • t
  • e
  1. ^ Hawes, Nathan; Barham, Ben. "Using Clang to Visualize Large Codebases" (PDF). Retrieved 25 September 2015.