• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

Low level knowledge of C/C++

Joined
8/12/14
Messages
9
Points
11
Hello everyone,

I was looking through a job vacations and found the "Low level knowledge of C/C++" requirement.
This is a bit unclear to me. I was programming using C++ for 2 years but never had to dig inside the internals of C++ language. I don't really understand what that supposed to mean?
Ability to explain how RVO works? Or how data stored in a stack frame?
 
That was not stated in the job description. I think performance and reliability are the most important issues. I would like to read some books on that but have no idea where to find them?
 
That was not stated in the job description. I think performance and reliability are the most important issues. I would like to read some books on that but have no idea where to find them?
experience?
 
They write that people from telecom,game industry are welcome. I was developing multithreaded software using WinAPI. I'm switching to boost currently to make it cross platform. I wasn't really digging into assembler so "low level C++" is unknown term for me.
 
They write that people from telecom,game industry are welcome. I was developing multithreaded software using WinAPI. I'm switching to boost currently to make it cross platform. I wasn't really digging into assembler so "low level C++" is unknown term for me.
MFC threads?
 
I think i have confused everyone a bit.
I was never working for the bloomberg. I plan to go for interview where "Low level C++" is required. What do i need to know to pass it?
 
I think i have confused everyone a bit.
I was never working for the bloomberg. I plan to go for interview where "Low level C++" is required. What do i need to know to pass it?
Bloomberg is asking for "Low level C++"? You will get C questions.
 
I've heard that Bloomberg has extensively replicated much of Boost in their internal libraries. So I will hazard a guess that they want someone that knows how Boost implements and optimizes data structures, smart pointers, etc. This way the person would be able to dive into the internal Bloomberg libraries and be able to extend and rework them as necessary.
 
I've heard that Bloomberg has extensively replicated much of Boost in their internal libraries. So I will hazard a guess that they want someone that knows how Boost implements and optimizes data structures, smart pointers, etc. This way the person would be able to dive into the internal Bloomberg libraries and be able to extend and rework them as necessary.
I think you might be mistaken. I would guess they rewrote in C most of the FORTRAN they used to run and use a C++ compiler. I can also bet their software is a nightmare.
 
Last edited:
Code for Black Scholes
C++:
! A fortran95 program for BS option
! By djd
!
program main
  implicit none
  integer anyKey

  real*8 S,K,T,r,v
  real*8 BlackScholes
  real*8 price

  S = 60.0
  K = 65.0
  T = 0.25
  r = 0.08
  v = 0.3

  price  = BlackScholes(S,K,T,r,v)
  write(*,*) price

  anyKey = system("pause")

end

!
real*8 Function BlackScholes(S, X, T, r, v)
      ! Put
        real*8 S,X,T,r,v

        real*8 d1, d2
        d1 = (Log(S / X) + (r + v**2. / 2.) * T) / (v * Sqrt(T))
        d2 = d1 - v * Sqrt(T)

        BlackScholes = X * Exp(-r * T) * cdf(-d2) - S * cdf(-d1)

        Return

        End

!
  real*8 Function pdf(x)

            real*8 x,A
            A = 1.0/Sqrt(2.0*3.1415)

            pdf = A * Exp(-0.5*x*x)

            return
   end

!

real*8 Function cdf(x)

            real*8 DPI,x,L,k,a1,a2,a3,tmp,pdf

            a1 = 0.4361836
            a2 = -0.1201676
            a3 = 0.9372980
            DPI = 3.1415926535897932

            L = Abs(x)
            k = 1. / (1. + 0.33267*x)

            tmp = a1*k+ a2 * k**2. + a3 * k**3.

            cdf =  1.0 - pdf(x)*tmp
            if(x.lt.0.) then

                cdf = pdf(x)*tmp

            end if

            return

        end
 
I was looking through a job vacations and found the "Low level knowledge of C/C++" requirement.
This is a bit unclear to me.
. . .
They write that people from telecom,game industry are welcome. I was developing multithreaded software using WinAPI. I'm switching to boost currently to make it cross platform. I wasn't really digging into assembler so "low level C++" is unknown term for me.

Time to dig in! ;-)

From the gamedev context, this is pretty awesome series:
http://www.gamasutra.com/view/news/128161/A_Low_Level_Curriculum_for_C_and_C.php
http://gamedeveloper.com/view/news/169946/CC_low_level_curriculum_Looking_at_optimized_assembly.php
http://gamedeveloper.com/view/news/...vel_Curriculum_Part_10_User_Defined_Types.php

// As for the books, I guess the entry-level (i.e., no assembly, but explaining the C++ constructs implementation from the C POV) starting-point would be the classic "Inside the C++ Object Model" by Stanley B. Lippman -- a lot has changed since 1996, though.

Good to know: http://danluu.com/new-cpu-features/
// implications:
// - http://gameprogrammingpatterns.com/data-locality.html
// - http://research.scee.net/files/pres...ls_of_Object_Oriented_Programming_GCAP_09.pdf

More: http://www.agner.org/optimize/#manuals

HTH!
 
Last edited:
Back
Top