64ビットに対応したソフトウェアの開発方法

このQ&Aのポイント
  • 64ビットに対応したソフトウェアの開発方法について解説します。
  • プログラマのスキルや意識が64ビット対応の程度に影響するのか、規則に沿って書き方をするだけで自然に64ビット化するのかについて考えます。
  • また、64ビットプログラムの特徴や動作環境についても解説します。
回答を見る
  • ベストアンサー

64ビットに対応したソフトウェアはどのように作られるのですか?

64ビットに対応したソフトウェアはどのように作られるのですか? 64ビットの環境(CPU-OS)では64ビット向けに開発したプログラムが効率よく実行(速い)できるということですが、実際に64ビットに適したプログラムとはどのように開発するでしょうか? 私自身はプログラマでもなく開発する人間ではないので的外れな質問かも知れませんが可能な範囲でお答えいただければありがたいです。 ・コーディングの時点でメモリの使い方のような「プログラマの意識や手腕」に拠る。つまり、プログラマのスキルによって「64ビット対応」の程度が違うということがあるでしょうか?それとも、ある一定の規則に沿って32ビット向けとは違う書き方をするだけで自ずと64ビット化となるのでしょうか?(前者のイメージは、64ビットをフルに使うように随所で職人的な技術を要するのか、デジタルではっきりと32/64の区別がつくのでしょうか) ・プログラムは外観上(何かのファイルのプロパティを見たり、もしくはリバースエンジニアリングをするようなことで)はっきりと64ビットプログラムか否かというのが分かるものでしょうか。 ・64ビット専用のプログラムは32ビット環境では動かないということですが、何がネックとなり動作できないのでしょうか?(因みに最初の質問は、カッチリとした64ビット専用以外に、中途半端に64ビット指向のソフトがあるのでしょうか?という考えからです) よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • bardfish
  • ベストアンサー率28% (5029/17765)
回答No.2

Windowsなら開発ツールのVisualStudioで32/64bitアプリが開発可能です。 32bitと64bitの切りかえはビルド(コンパイル・リンク)時に指定可能で、ターゲットCPUも指定できます。通常はx86用としてコンパイルしますが場合によってはi586用とか80386用という指定が可能。最新のCPUの場合はMicrosoft VisualStudioでは指定できない場合があり、最新CPU用にコンパイルしたい場合はIntelからリリースされているVisualC++を使用する必要があったりします。 プログラムのコーディングで違う場合もあります。 C言語の場合インラインアセンブラと言ってC言語のソースの中にあ゛んぶらげんごを混入させることが可能なのですが、この時にコンパイルオプションによってどのコードをコンパイルさせるか指定することが可能。 インラインアセンブラを使うケースはCのライブラリを使うよりアセンブラで記述した方が効率が高い場合やプログラムサイズを減らしたい場合、特定CPUの専用命令を使いたい場合に有効。 今はそういう開発をしているところは皆無じゃないかな?インラインアセンブラじゃなくてライブラリ化しているところが殆どだと思うし、そういうことを気にしなくてもいい開発環境が主流になっているからね。更に言うと、今はプログラムの実行効率よりも人が携わる開発効率の方を重視するから… >・64ビット専用のプログラムは32ビット環境では動かないということですが、何がネック >となり動作できないのでしょうか? これはCPUのレジスタ長とか命令のbit長などCPUの特徴を知っていれば何の疑問も出てきません。それにOSレベルでその手の判断をしたりしますからね。 実行プログラムの先頭にはそのプログラムの素性とも呼べる情報が含まれています。OSがその素性を見て自分(OS)にあっているかどうか判断できます。そういう機能を持っていないOSだと実行させた時にOSレベルで暴走したりします。

その他の回答 (1)

noname#182251
noname#182251
回答No.1

余りこの分野に詳しくはありませんが(^^; プログラマーが意識的にやる部分はほとんどないでしょう。コンパイラ(乱暴に云えば開発ツール)がほとんど全部やってくれる。プログラマーはコンパイル指定を替える程度をやるかどうかで、コードが変わることはまずないでしょう。ちょっと古いですが、下記URLなどをご参考に。 http://journal.mycom.co.jp/special/2005/compiler/menu.html

関連するQ&A

  • 32bitと64bitについて

    こんにちは。 WindowsServer2008R2は64bitでの提供のみとききました。そこで基本的な質問で申し訳ないのですが、そもそも32bitと64bitで何が違うのか教えて頂けますでしょうか? 具体的には、今まで開発してきたプログラムが64bitになると動かなくなる、とも聞きました。プログラムのコーディング自体に修正が必要なのでしょうか?それとも、64bitのマシンでコンパイルすれば済むだけの話なのでしょうか? また、WS2008R2のリリース以降はメーカー側も64bitの機械しか出荷してくれなくなってしまうのでしょうか。R2リリース以降もSP2を新規発注し続けることは難しくなると思われますか? 技術者として最低限知っておくべきだ、というようなことがあれば教えて頂きたく思います。宜しくお願いしますm(_ _)m

  • 64bit環境でのEclipseの動作について

    64bit版のWindowsServer2003でJavaをコーディングすることになりました。 Jdkは64bit版のものがあるのでそれをインストールしますが、開発環境であるEclipseについて64bit環境であることによる考慮は必要なのでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 基本情報技術者 午前 リバースエンジニアリング について

    リエンジニアリングとリバースエンジニアリングの違いが分かりません教えてください。   平成15年 春期 基本情報技術者 午前 問60 既存のプログラムやファイルを解析して仕様書を作成し、これを参考にして同等の機能をもったプログラムやファイルを作成する開発手法はどれか。 ア コンカレントエンジニアリング イ リエンジニアリング ウ リバースエンジニアリング エ リユーステクノロジ 【答 ウ】  私はこの答えは【イ】だと思いました。 なぜなら既存のシステムから仕様書を作成するまでが、リバースエンジニアリングで、そのとき作成されたものからシステム構築を行うことがフォワードエンジニアリングで、その2つの工程を行うのがリエンジニアリングだと考えているからです。

  • 64ビットPCとオークションにありますが、デュアルコアではなさそうなのですが、使えないアプリケーションなどはありますか?

    http://page9.auctions.yahoo.co.jp/jp/auction/k27918558 ↑64ビットPentium4630とありますが、HTテクノロジーだから64ビットになるということでデュアルコアでないですよね?? 私は、プログラム開発用に購入したいとおもっているんですが、現在64ビットに対応していないアプリケーションがたくさんあるとおもうので、32ビット出ないと困るのです。例えば、MicroSoftの開発環境のホームページでは「Visual Studio 2005 は、Intel Itanium (IA64) プロセッサをサポートしていません。 」とかいてあります。 また、このオークションのPCを買うことによって、使えないアプリケーション(例えば、現在のバージョンのOffice)とかはあるのでしょうか? 詳しい方よろしくお願いします。

  • Access2016 64bit ランタイム

    いつも大変お世話になっております。 来月よりお客様のデータベースの構築が始まります。 準備するにあたりご質問がございます。 仮に弊社の開発環境(Windows10,Access2016,64bit)で作成したプログラムを、 お客様の運用環境(Windows10,Access2016,32bitランタイム)で利用は可能でしょうか。 つまり64bit で構築したプログラムが32bit 環境(ランタイム)で動くかどうか、 もしくはその逆(32bit ⇒ 64bitランタイム)ではどうかの質問です。 もちろん環境は合わせますが、お客様の都合によりbitが変わる可能性があります。 事前に情報として頭に入れておきたいと思います。 検索でなかなかヒットしなかったので質問させていただきました。 何卒よろしくお願いいたします。

  • 無料で協力してくれる共同開発者の募集の仕方

    C 言語暦 10 年のプログラマです。 お金をできるだけかけずに(できれば無料で), PHP でソフトウェアを開発したい案件があります。 簡単な PHP プログラムなら書けます。 自分でコーディングする以外に, 共同開発者を募る方法はありますでしょうか。 報酬はプログラム完成後に収益があった場合にのみ分配したいと考えています。

    • ベストアンサー
    • PHP
  • 64bitの実行ファイルを実行する場合

    開発機(64bit)でCのソースをコンパイル・実行ファイル作成をし、本番機(64bit)に実行ファイルだけFTP転送します。 そして本番機には64bitのCのコンパイラ(cc)は入ってなく、32bitのものが入っています。 そういう環境のせいか、signal 11を出してプログラムは停止します。 #開発機では正常稼動しています Cの実行ファイルが実行されるときはコンパイラが影響するものなのでしょうか? #影響するようでしたら上記エラーが出るのも納得できるのですが。。 申しわけありませんが、何かアドバイスがありましたらよろしくお願いします。

  • VBの2008 Express Edition について

    VBの2008 Express Editionと製品版の大きな違いを教えて下さい。 気になる点は Framework 、コントロール 、  セキュリティリスク、リバースエンジニアリング、制作したプログラムの配布(無償、有償)、 ExpressEditionの最新版でVisualStudio2010はどう対応される予定なのか、 です。

  • INT64対応のprintf系関数はありますか?

    WindowsXP & Visual C++という環境でソフト開発しています。 大きな整数を扱うのでINT64を使用しているのですが、sprintf関数で整数を表示する為に「%d」を使うと、32ビット整数にしか対応していないらしく、正しく動作しないことが分かりました。 64ビット整数に対応したprintf系の関数群は存在するのでしょうか?

  • VISTA64bit,VS2005/C++で対象コンピュータを「x64

    VISTA64bit,VS2005/C++で対象コンピュータを「x64」にして簡単なプログラムをビルドすると以下のエラーが出てしまいます。 「1>.\Debug\stdafx.obj : fatal error LNK1112: モジュールのコンピュータの種類 'X86' は対象コンピュータの種類 'x64' と競合しています。」 OS   :VISTA Ultimate64bit CPU   :Xeon5080(64bit), 開発環境:VS2005 Team Edition for software developers完全インストール ◎OSもCPUも64bit対応なのに何故かモジュールのコンピュータは32bitでビルドしてしまいます。解決方法はありますでしょうか? 追記:気になることは、VS2005が普通の「Program files」のフォルダではなく「Program Files(x86)」に強制的にインストールしてしまうことです。

専門家に質問してみよう