Writing programs using different languages are quite common practice. The characteristics of a program or a system to use different languages in called interoperability. Java for example has a mechanism for interoperability and can call C functions. In the same fashion, we can define a C# method and call it in Python (using IronPython).
In a simple case, different languages are compiled to the same code. C and C++ are typically compiled into machine assembler,while C# and VB.NET is compiled to IL (the language understood by the .NET runtime).
It gets more complicated if the languages or compilers use different type system. There can be different ways of representing basic data types like integers and doubles. When passing these types between different languages, you need to make sure that the two sides interpret the type the same way.
In many cases, when we talk about interoperability, we will find that the one language is a compiled one and the other is a interpreted. Chrome is a great example of this practice. The compiled language (C++) is used for the base application. The base provides an interface to the operating system and acts as a foundation for the work to be done by the application.
The interpreted language is used to provide customization for the application. It can provide useful functions and high level interface specific for the application, making custamizations way more easier.
Many languages allow for a secondary language to be embedded into the syntax of the first. This is called Syntax Embedding. C and C++ for example allow assembly code to be embedded in the syntax using asm:
asm("<assembly code>");
Assembly code is mostly used for short, highly used, performance critical routines or when one have to access features a high-level language does not expose. In most cases, a compiled C++ code will be times faster than a hand-written assembly code. This is because compilers can do opimizations we can't even imagine.
Of couse there are other ways to integrate multiple language with one another like:
and the list goes on...