Nominatim (from the Latin, 'by name') is a tool to search OSM data by name and address (geocoding) and to generate synthetic addresses of OSM points (reverse geocoding). It can be found at nominatim openstreetmap
Nominatim is also used as one of the sources for the search box on the OpenStreetMap home page. Several companies provide hosted instances of Nominatim that you can query via an API, see section Alternatives below.
This page provides usage instructions. For details of how Nominatim works please see the Development Overview and there is a short FAQ. There is also a list of language mappings per country, some experimental address formats per country and a list of abbreviations.