XVII. Akademik Bilisim Konferansi

BaşlıkEmektar C ve Bileşenleri
ÖğrenciHayır
Yazar(lar) Yazar 1
Name: Engür Rıza Pişirici
Org: İhsan Doğramacı Bilkent Üniversitesi
Country: TR
E-mail: engur_AT_bilkent.edu.tr
Anahtar KelimelerC, Compilers, Operating Systems, Kernels, Drivers, Gnu Compiler Collection, API, ABI
ÖzetDuyduğumuz, eskide kaldığını düşündüğümüz C diline ait bildiklerimizin pasını sildikten sonra, işin arka kısmına göz atacağız. 4 günlük kursda, derleyicilerden başlayarak, çeşitli bileşenlerini öğreneceğiz.
 LALR, 
parser, 
debugger, 
linker, 
jit, 
aot, 
itl, 
cil, 
binary code, 
machine code, 
opcode, 
rtl, 
endianness, 
calling conventions, 
long word, char, 
ia32, amd64, 32 bit OS, pae, 64 bit os, 
preprocessor directives, 
macros, frontend, backend, 
lexial analyzers, 
vs. gibi kavramları açıklık getirmeye çalışağız. Bu süre içinde, GCC araçlarından faydalanacağız.
Kursun içerigi konusunda küçük bir örnek ve soru:
-----
Her hangi bir linux dagıtımında bulabileceginiz bir ortam. gcc ve dostlarını yüklemeniz yeterli olacaktır.
------
Linux alpha 3.2.0-4-amd64 #1 SMP Debian 3.2.54-2 x86_64 GNU/Linux
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.7.2-5'
--with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs
--enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.7 --enable-shared --enable-linker-build-id
--with-system-zlib --libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7
--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--enable-gnu-unique-object --enable-plugin --enable-objc-gc
--with-arch-32=i586 --with-tune=generic --enable-checking=release
--build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.7.2 (Debian 4.7.2-5)
------- sorular için 2 program --------
=====   soru1.c ======
#include 
#include 

int AB2015(void)
{
 printf("Selam AB2015\n");
 exit(0);
}

int main(void)
{
 printf("Heh!\n");
 exit(0);
}

=======  soru2.c ======
#include 
#include 

unsigned long int SAY = 0xAB2015;

void k(void)
{
 int x;
 *(&x+3) = SAY + (1 << 8 | 2 << 4 | 4 << 0);
}

int l(void)
{
 printf("%lX\n",SAY);
 exit(0);
}

int main(void)
{
 unsigned long int x;

 x=(unsigned long int) k;
 if (x < SAY + 0x124 && x  > SAY)
	 k();

 printf("%ld\n",SAY);
 exit(0);
}
======  ve Sorular ===========


Soru 1: "Selam olsun Akademik Bilişim 2015'e"
   Konumuz C. Sizce kodu değiştirmeden, AB2015'e nasıl selam
yollayabiliriz? (Doğru cevap vermektense yorumlarınız daha kıymetli)
Hint 1: gcc -o soru1 soru1.c

Soru 2: "11214869"
   Ne güzel bir sayı kendisi değil mi? Sizce kodu değiştirmeden, bu
sayının "anlamını" görebilirmiyiz?
Hint 2: gcc -o soru2 soru2.c

----------
Bu soru kodlari, ve bu sorular ile gelmeyi dusunen
kursiyerler icin kurs icerigi hakkinda bir nebze olsun birseyler anlatmis oluyoruz.
Başlıklar AB-Kurs
Dosya
 

 

Powered by OpenConf®
Copyright ©2002-2014 Zakon Group LLC