"In Windows 10, we have this notion of a universal app platform," Box said. "And the apps that target it are called 'Windows apps.' Sometimes we say 'universal apps,' but we call them 'Windows apps.'"

Windows apps are those, Box added, that run on any of the numerous device categories that Windows 10 will support, ranging from smartphones and tablets to personal computers, the Xbox video game consoles and specialized "Internet of Things" hardware.

Meanwhile, Windows desktop applications is the moniker Microsoft will use to describe traditional personal computer programs.

"On PCs, we still continue to support the two decades-plus worth of Windows desktop applications, for running them on PCs," Box said. "And so sometimes in a technical session we will talk about a 'Windows app' and a 'Windows desktop app.' 'Windows app' runs on all devices. 'Windows desktop app,' PC only."

Microsoft plans to release Windows 10 this summer in 190 countries and 111 languages, the company announced today, though a specific date was not named.

In a blog post on the Windows website, Terry Myerson, head of Microsoft's operating systems team, didn't elaborate on the release time frame beyond saying it was shared at the Windows Hardware Engineering Community event in Shenzhen, China, today. The time frame aligns with an earlier Neowin report that the company is planning to finish the operating system in June to ready it for consumer consumption.

While specific territories weren't provided, the announcement of 190 countries likely means all major consumer markets will see a roughly simultaneous release.

Windows 10 will be a free upgrade for consumer devices with Windows 7, Windows 8.1 or Windows Phone 8.1 in its first year, though businesses will have to pay for enterprise operating system upgrades. Computer users can currently test the preview version of the operating system, while a select number of Lumia smartphones can test its mobile version, with support for more phones coming soon.

Other algorithms for approximate string searching exist (e.g., Soundex), but those aren't as easy to implement. The algorithm in this article is easy to implement, and can be used for tasks where approximate string searching is used in an easy way.

In the search process, for each word in the wordlist, the Levenshtein-distance is computed, and with this distance, a score. This score represents how good the strings match. The input argument fuzzyness determines how much the strings can differ.