Comment puis-je savoir quel langage de programmation d'un logiciel spécifique qui est écrit dans?
Si je suis en utilisant un logiciel gratuit de compte à rebours, un client utorrent, lecteur vidéo, etc. est-il un moyen facile de savoir quel langage de programmation, il est écrit dans? Surtout si c'est l'un des plus traditionnels des langages de programmation tels que C, C++, Java, Perl, de Base, etc.
Je suis familier avec PHP et JavaScript pour le web et n'ont pas de difficultés pour l'ouvrir et d'éditer ces fichiers, mais maintenant que je suis à la recherche de ramasser un non-web, langage de programmation, je voudrais augmenter la portée de mes compétences un peu. Je vais avoir un peu de difficulté à trouver ce langage les différentes applications que j'utilise personnellement été écrit dans. Je voudrais comparer des langues avec des exemples de la vie réelle que je suis familier avec.
Utiliser la décompilation.
est-il un outil automatique qui peut dire la langue à partir du code source?
Voir cette question.
Peut-être, vous pouvez simplement demander aux développeurs d'une application?
OriginalL'auteur Simon Suh | 2010-12-23
Vous devez vous connecter pour publier un commentaire.
L'examen de la liste des bibliothèques partagées (Dll dans Windows-parler) d'un programme compilé peut donner un indice, parce que en général, chaque langue a un distinctif bibliothèque pour fournir l'environnement d'exécution.
Par exemple, sur mon PC Linux, l'exécution de la
ldd
commande sur un fichier exécutable produit à la suite de conte de sortie:L'utilisation de
libc.so
suggère de C ou de C++. L'utilisation delibstdc++.so
suggère C++. En fait c'était un programme C++.De la recherche le programme exécutable lisible par l'homme pour les chaînes peuvent aussi donné des indices, surtout si elle a des informations de débogage présent.
Par exemple, l'exécution de la
strings
de commande sur le même exécutable revealled (parmi beaucoup d'autres de texte) le conte de cordes:Les trois premiers ressemblent à des fragments de C++, le dernier ressemble au nom d'un code source C++ de fichier.
OriginalL'auteur Raedwald
Je dirais que de nos jours, la plupart des langages de programmation utilisés pour les applications de bureau serait C++, .Net et Java (vous ne savez pas sur les apps sur Mac).
Je pense que la chose à considérer est de plus de ce que vous voulez atteindre et sur les plateformes qui vous souhaitez l'exécuter. Java va vous donner toutes les plateformes, gratuitement, à condition que l'utilisateur dispose d'une machine virtuelle java sur son ordinateur. .Net, il sera facile de développer pour Windows, mais nécessite des outils de Microsoft ayant parfois un gratuit, mais en limitant licence, mais généralement coûteux. C++ vous permettra de développer de multiples plates-formes, mais il implique plus d'efforts pour rendre votre programme portable et de le compiler pour plusieurs OS/processeurs.
À identifier .Net ou des programmes Java, il suffit de lire le fichier README fourni avec le programme. Je déclare que vous avez besoin d'une certaine version de l' .Net framework ou d'une Machine Virtuelle Java pour exécuter le programme.
Également vérifier si le programme est simplement un script, si il a besoin d'un interprète (PHP, LUA, Python, ...). Cela devrait également être mentionné dans le fichier README.
Plus difficile sera de distinguer entre le C et le C++. À la fois compilé vers un fichier EXE et ne nécessite aucune sorte de externe de la machine virtuelle pour exécuter.
Modifié la réponse. Je pense que dans l'industrie, pour les applications de bureau, ceux-ci sont choisis le plus souvent. Bien sûr, c'est juste mon avis, qui ne doit pas être la réponse universelle 🙂
.NET est pas un langage de programmation.
Vous avez raison, c'est une technologie/cadre et la machine virtuelle peut interpréter une variété de langages (C#, VB, ManagerC++, ...). Je pensais toutefois que le regroupement de tous les dans la .Net label de sens.
OriginalL'auteur Vincent Mimoun-Prat